desktop/source/lib/init.cxx |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

New commits:
commit beeeb3b8d5dcdee45d3fb2cb97f3def789db0f6a
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Tue Aug 8 06:49:04 2023 +0200
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Tue Aug 29 11:18:21 2023 +0200

    jsdialog: detect special window id earlier
    
    Change-Id: Ib90d9d728d93a26d44a7f52b7ca0074338b1fae9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155853
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156235
    Tested-by: Jenkins

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 86a32708e59b..21c47eacdfc7 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -4721,11 +4721,21 @@ static void lcl_sendDialogEvent(unsigned long long int 
nWindowId, const char* pA
     try
     {
         OUString sControlId = aMap["id"];
+        OUString sWindowId = OUString::number(nWindowId);
+        OUString sCurrentShellId = OUString::number(nCurrentShellId);
+
+        // special values for window id
+        if (nWindowId == static_cast<unsigned long long int>(-1))
+            sWindowId = sCurrentShellId + "sidebar";
+        if (nWindowId == static_cast<unsigned long long int>(-2))
+            sWindowId = sCurrentShellId + "notebookbar";
+        if (nWindowId == static_cast<unsigned long long int>(-3))
+            sWindowId = sCurrentShellId + "formulabar";
 
         // dialogs send own id but notebookbar and sidebar controls are 
remembered by SfxViewShell id
-        if (jsdialog::ExecuteAction(OUString::number(nWindowId), sControlId, 
aMap))
+        if (jsdialog::ExecuteAction(sWindowId, sControlId, aMap))
             return;
-        auto sCurrentShellId = OUString::number(nCurrentShellId);
+
         if (jsdialog::ExecuteAction(sCurrentShellId + "sidebar", sControlId, 
aMap))
             return;
         if (jsdialog::ExecuteAction(sCurrentShellId + "notebookbar", 
sControlId, aMap))

Reply via email to