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()); }