include/vcl/weld.hxx                                   |    1 +
 sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx |    5 ++++-
 vcl/jsdialog/executor.cxx                              |    3 ++-
 3 files changed, 7 insertions(+), 2 deletions(-)

New commits:
commit fc656a56b283ec0eb308faf78fa171fd69b1e807
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Thu Nov 17 22:25:33 2022 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Sat Nov 19 16:31:58 2022 +0100

    jsdialogs: correctly detect button's handler
    
    Change-Id: I5bb3e60d52813fddfc9a5eb7a0e87d5f5e3853f3
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142904
    Reviewed-by: Michael Meeks <michael.me...@collabora.com>
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142964
    Tested-by: Jenkins
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index b024bc33c4af..9bb5bfb6ed74 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -1479,6 +1479,7 @@ public:
     virtual void set_from_icon_name(const OUString& rIconName) = 0;
     virtual OUString get_label() const = 0;
     void clicked() { signal_clicked(); }
+    bool is_custom_handler_set() { return m_aClickHdl.IsSet(); }
 
     // font size is in points, not pixels, e.g. see Window::[G]etPointFont
     virtual void set_font(const vcl::Font& rFont) = 0;
diff --git a/vcl/jsdialog/executor.cxx b/vcl/jsdialog/executor.cxx
index a389e3ab0739..51dcca8f5d16 100644
--- a/vcl/jsdialog/executor.cxx
+++ b/vcl/jsdialog/executor.cxx
@@ -59,7 +59,8 @@ bool ExecuteAction(const std::string& nWindowId, const 
OString& rWidget, StringM
 
     if (sControlType == "responsebutton")
     {
-        if (pWidget == nullptr)
+        auto pButton = dynamic_cast<weld::Button*>(pWidget);
+        if (pWidget == nullptr || (pButton && 
!pButton->is_custom_handler_set()))
         {
             // welded wrapper not found - use response code instead
             pWidget = JSInstanceBuilder::FindWeldWidgetsMap(nWindowId, 
"__DIALOG__");
commit 71c88cf9d5f5dffa86e5a111e19468a5a2a2b6c0
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Mon Nov 14 11:38:40 2022 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Sat Nov 19 16:31:44 2022 +0100

    lok: masterpage: don't remove old cache
    
    In multi user view when switching between MasterPage and Page
    mode it was failing to find cache because it was removed by other
    views. We need that to allow invalidation after master page changed
    something.
    
    Change-Id: I070345b0fe6942965aece5bf729ceb37b7d99397
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142697
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Ashod Nakashian <a...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142965
    Tested-by: Jenkins
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>

diff --git a/sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx 
b/sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx
index 465bb6c992b5..76fc3753fc53 100644
--- a/sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx
+++ b/sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx
@@ -27,6 +27,8 @@
 #include <unordered_map>
 #include <utility>
 
+#include <comphelper/lok.hxx>
+
 namespace {
 
 /** Collection of data that is stored for all active preview caches.
@@ -298,7 +300,8 @@ std::shared_ptr<BitmapCache> PageCacheManager::ChangeSize (
 
             pResult = rpCache;
         }
-        else
+        // In multi user view this can happen - no issue (reset after 
switching MasterPage)
+        else if (!comphelper::LibreOfficeKit::isActive())
         {
             assert(iCacheToChange != mpPageCaches->end());
         }

Reply via email to