vcl/inc/jsdialog/jsdialogbuilder.hxx |    1 +
 vcl/jsdialog/jsdialogbuilder.cxx     |    9 +++++++++
 2 files changed, 10 insertions(+)

New commits:
commit 926e16ed65b45615dde46698ebb53d9b93ef5b23
Author:     Szymon Kłos <szymon.k...@collabora.com>
AuthorDate: Wed Feb 5 14:10:56 2025 +0100
Commit:     Szymon Kłos <szymon.k...@collabora.com>
CommitDate: Fri Feb 7 07:37:58 2025 +0100

    jsdialog: toolbar set_item_active method
    
    it was not updating state when toolbar in style sidebar
    was used
    
    Change-Id: Ie1a6f9fe8cc867d30abe2a7359bda42163a0d92e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181170
    (cherry picked from commit 7e5075fea733d68c8167ac33e5ce34d89b50a6a9)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181216
    Reviewed-by: Szymon Kłos <szymon.k...@collabora.com>
    Tested-by: Jenkins

diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx 
b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 4484292fea95..944b96c75e86 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -644,6 +644,7 @@ public:
     JSToolbar(JSDialogSender* pSender, ::ToolBox* pToolbox, 
SalInstanceBuilder* pBuilder,
               bool bTakeOwnership);
 
+    virtual void set_item_active(const OUString& rIdent, bool bActive) 
override;
     virtual void set_menu_item_active(const OUString& rIdent, bool bActive) 
override;
     virtual void set_item_sensitive(const OUString& rIdent, bool bSensitive) 
override;
     virtual void set_item_icon_name(const OUString& rIdent, const OUString& 
rIconName) override;
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 2ad31d0860a7..816577977b06 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1570,6 +1570,15 @@ JSToolbar::JSToolbar(JSDialogSender* pSender, ::ToolBox* 
pToolbox, SalInstanceBu
 {
 }
 
+void JSToolbar::set_item_active(const OUString& rIdent, bool bActive)
+{
+    bool bWasActive = get_item_active(rIdent);
+    SalInstanceToolbar::set_item_active(rIdent, bActive);
+
+    if (bWasActive != bActive)
+        sendUpdate();
+}
+
 void JSToolbar::set_menu_item_active(const OUString& rIdent, bool bActive)
 {
     bool bWasActive = get_menu_item_active(rIdent);

Reply via email to