include/vcl/weld.hxx                 |   27 ++++++++++++++++++++++++---
 vcl/inc/jsdialog/jsdialogbuilder.hxx |    4 ++--
 vcl/inc/qt5/QtInstanceAssistant.hxx  |    6 +++---
 vcl/inc/salvtables.hxx               |    6 +++---
 vcl/jsdialog/jsdialogbuilder.cxx     |    8 ++++----
 vcl/qt5/QtInstanceAssistant.cxx      |    8 ++++----
 vcl/source/app/salvtables.cxx        |   15 ++++-----------
 vcl/unx/gtk3/gtkinst.cxx             |    8 ++++----
 8 files changed, 48 insertions(+), 34 deletions(-)

New commits:
commit 093aca316021f508f41c409726622b484c52891c
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Oct 18 02:22:25 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Mon Oct 20 17:09:01 2025 +0200

    tdf#130857 weld: Move signal blocking to Assistant::set_current_page
    
    Apply the changes as described in
    
        Change-Id: If5fba408cc6638441e9856238b19659fed6d7e01
        Author: Michael Weghorn <[email protected]>
        Date:   Fri Oct 17 22:11:02 2025 +0200
    
            tdf#130857 weld: Move signal blocking to TextView::select_region
    
    for these method as well. See the above-mentioned
    commit for more details/background.
    
    For this case, one of the SalInstanceAssistant::set_current_page
    variants was calling the other, so only the latter
    had the signal (un)blocking logic.
    
    Change-Id: Ia038e1a82089c97bb759b44020d8331ece5b688b
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192635
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 1aac1a8754e9..893890d1268c 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -698,6 +698,8 @@ protected:
         return m_aJumpPageHdl.Call(rIdent);
     }
 
+    virtual void do_set_current_page(int nPage) = 0;
+    virtual void do_set_current_page(const OUString& rIdent) = 0;
     virtual void do_set_page_index(const OUString& rIdent, int nIndex) = 0;
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) = 0;
     virtual void do_set_page_sensitive(const OUString& rIdent, bool 
bSensitive) = 0;
@@ -707,8 +709,20 @@ public:
     virtual int get_n_pages() const = 0;
     virtual OUString get_page_ident(int nPage) const = 0;
     virtual OUString get_current_page_ident() const = 0;
-    virtual void set_current_page(int nPage) = 0;
-    virtual void set_current_page(const OUString& rIdent) = 0;
+
+    void set_current_page(int nPage)
+    {
+        disable_notify_events();
+        do_set_current_page(nPage);
+        enable_notify_events();
+    }
+
+    void set_current_page(const OUString& rIdent)
+    {
+        disable_notify_events();
+        do_set_current_page(rIdent);
+        enable_notify_events();
+    }
 
     // move the page rIdent to position nIndex
     void set_page_index(const OUString& rIdent, int nIndex)
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx 
b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 102459e9ae8c..4499f096d78e 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -431,8 +431,8 @@ public:
     JSAssistant(JSDialogSender* pSender, vcl::RoadmapWizard* pDialog, 
SalInstanceBuilder* pBuilder,
                 bool bTakeOwnership);
 
-    virtual void set_current_page(int nPage) override;
-    virtual void set_current_page(const OUString& rIdent) override;
+    void do_set_current_page(int nPage) override;
+    virtual void do_set_current_page(const OUString& rIdent) override;
     virtual void response(int response) override;
     virtual std::unique_ptr<weld::Button> weld_button_for_response(int 
response) override;
     virtual int run() override;
diff --git a/vcl/inc/qt5/QtInstanceAssistant.hxx 
b/vcl/inc/qt5/QtInstanceAssistant.hxx
index 23a0bab0c6ae..7002dc543b6f 100644
--- a/vcl/inc/qt5/QtInstanceAssistant.hxx
+++ b/vcl/inc/qt5/QtInstanceAssistant.hxx
@@ -44,8 +44,8 @@ public:
     virtual int get_n_pages() const override;
     virtual OUString get_page_ident(int nPage) const override;
     virtual OUString get_current_page_ident() const override;
-    virtual void set_current_page(int nPage) override;
-    virtual void set_current_page(const OUString& rIdent) override;
+    virtual void do_set_current_page(int nPage) override;
+    virtual void do_set_current_page(const OUString& rIdent) override;
     virtual void do_set_page_index(const OUString& rIdent, int nIndex) 
override;
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) override;
     virtual OUString get_page_title(const OUString& rIdent) const override;
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 88579c26a13b..5330bd06e674 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -569,8 +569,8 @@ public:
     virtual int get_n_pages() const override;
     virtual OUString get_page_ident(int nPage) const override;
     virtual OUString get_current_page_ident() const override;
-    virtual void set_current_page(int nPage) override;
-    virtual void set_current_page(const OUString& rIdent) override;
+    virtual void do_set_current_page(int nPage) override;
+    virtual void do_set_current_page(const OUString& rIdent) override;
     virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) 
override;
     virtual weld::Container* append_page(const OUString& rIdent) override;
     virtual OUString get_page_title(const OUString& rIdent) const override;
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 6295989285aa..f09a7a6d0ac2 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1092,15 +1092,15 @@ JSAssistant::JSAssistant(JSDialogSender* pSender, 
vcl::RoadmapWizard* pDialog,
 {
 }
 
-void JSAssistant::set_current_page(int nPage)
+void JSAssistant::do_set_current_page(int nPage)
 {
-    SalInstanceAssistant::set_current_page(nPage);
+    SalInstanceAssistant::do_set_current_page(nPage);
     sendFullUpdate();
 }
 
-void JSAssistant::set_current_page(const OUString& rIdent)
+void JSAssistant::do_set_current_page(const OUString& rIdent)
 {
-    SalInstanceAssistant::set_current_page(rIdent);
+    SalInstanceAssistant::do_set_current_page(rIdent);
     sendFullUpdate();
 }
 
diff --git a/vcl/qt5/QtInstanceAssistant.cxx b/vcl/qt5/QtInstanceAssistant.cxx
index 8855b806a54e..b12fca73d8f6 100644
--- a/vcl/qt5/QtInstanceAssistant.cxx
+++ b/vcl/qt5/QtInstanceAssistant.cxx
@@ -73,7 +73,7 @@ OUString QtInstanceAssistant::get_current_page_ident() const
     return sId;
 }
 
-void QtInstanceAssistant::set_current_page(int nPage)
+void QtInstanceAssistant::do_set_current_page(int nPage)
 {
     SolarMutexGuard g;
 
@@ -101,7 +101,7 @@ void QtInstanceAssistant::set_current_page(int nPage)
     });
 }
 
-void QtInstanceAssistant::set_current_page(const OUString& rIdent)
+void QtInstanceAssistant::do_set_current_page(const OUString& rIdent)
 {
     SolarMutexGuard g;
 
@@ -112,7 +112,7 @@ void QtInstanceAssistant::set_current_page(const OUString& 
rIdent)
             QWizardPage* pPage = m_pWizard->page(nPageId);
             if (pPage && pPage->objectName() == toQString(rIdent))
             {
-                set_current_page(nPageId);
+                do_set_current_page(nPageId);
                 break;
             }
         }
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index d425a99fda97..f11c3824e0dd 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2090,10 +2090,8 @@ OUString SalInstanceAssistant::get_current_page_ident() 
const
     return get_page_ident(get_current_page());
 }
 
-void SalInstanceAssistant::set_current_page(int nPage)
+void SalInstanceAssistant::do_set_current_page(int nPage)
 {
-    disable_notify_events();
-
     // take the first shown page as the size for all pages
     if (m_xWizard->GetPageSizePixel().Width() == 0)
     {
@@ -2112,15 +2110,14 @@ void SalInstanceAssistant::set_current_page(int nPage)
     }
 
     m_xWizard->ShowPage(m_aIds[nPage]);
-    enable_notify_events();
 }
 
-void SalInstanceAssistant::set_current_page(const OUString& rIdent)
+void SalInstanceAssistant::do_set_current_page(const OUString& rIdent)
 {
     int nIndex = find_page(rIdent);
     if (nIndex == -1)
         return;
-    set_current_page(nIndex);
+    do_set_current_page(nIndex);
 }
 
 void SalInstanceAssistant::do_set_page_index(const OUString& rIdent, int 
nNewIndex)
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 88faae016873..18897581caec 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -7739,7 +7739,7 @@ public:
         return get_page_ident(get_current_page());
     }
 
-    virtual void set_current_page(int nPage) override
+    virtual void do_set_current_page(int nPage) override
     {
         OString sDialogTitle(gtk_window_get_title(GTK_WINDOW(m_pAssistant)));
 
@@ -7752,12 +7752,12 @@ public:
             gtk_window_set_title(GTK_WINDOW(m_pAssistant), 
sDialogTitle.getStr());
     }
 
-    virtual void set_current_page(const OUString& rIdent) override
+    virtual void do_set_current_page(const OUString& rIdent) override
     {
         int nPage = find_page(rIdent);
         if (nPage == -1)
             return;
-        set_current_page(nPage);
+        do_set_current_page(nPage);
     }
 
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) override
commit efda5be8f9caf0fcff456ef6ac1549ebd5b2faf0
Author:     Michael Weghorn <[email protected]>
AuthorDate: Sat Oct 18 02:13:53 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Mon Oct 20 17:08:54 2025 +0200

    tdf#130857 weld: Move signal blocking to Assistant::set_page_index
    
    Apply the changes as described in
    
        Change-Id: If5fba408cc6638441e9856238b19659fed6d7e01
        Author: Michael Weghorn <[email protected]>
        Date:   Fri Oct 17 22:11:02 2025 +0200
    
            tdf#130857 weld: Move signal blocking to TextView::select_region
    
    for this method as well. See the above-mentioned
    commit for more details/background.
    
    Change-Id: I6624c29865be93c7c9568a271b10958d10533a02
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192634
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 0188a945f662..1aac1a8754e9 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -698,6 +698,7 @@ protected:
         return m_aJumpPageHdl.Call(rIdent);
     }
 
+    virtual void do_set_page_index(const OUString& rIdent, int nIndex) = 0;
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) = 0;
     virtual void do_set_page_sensitive(const OUString& rIdent, bool 
bSensitive) = 0;
 
@@ -708,8 +709,14 @@ public:
     virtual OUString get_current_page_ident() const = 0;
     virtual void set_current_page(int nPage) = 0;
     virtual void set_current_page(const OUString& rIdent) = 0;
+
     // move the page rIdent to position nIndex
-    virtual void set_page_index(const OUString& rIdent, int nIndex) = 0;
+    void set_page_index(const OUString& rIdent, int nIndex)
+    {
+        disable_notify_events();
+        do_set_page_index(rIdent, nIndex);
+        enable_notify_events();
+    }
 
     void set_page_title(const OUString& rIdent, const OUString& rTitle)
     {
diff --git a/vcl/inc/qt5/QtInstanceAssistant.hxx 
b/vcl/inc/qt5/QtInstanceAssistant.hxx
index 741ddeeed660..23a0bab0c6ae 100644
--- a/vcl/inc/qt5/QtInstanceAssistant.hxx
+++ b/vcl/inc/qt5/QtInstanceAssistant.hxx
@@ -46,7 +46,7 @@ public:
     virtual OUString get_current_page_ident() const override;
     virtual void set_current_page(int nPage) override;
     virtual void set_current_page(const OUString& rIdent) override;
-    virtual void set_page_index(const OUString& rIdent, int nIndex) override;
+    virtual void do_set_page_index(const OUString& rIdent, int nIndex) 
override;
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) override;
     virtual OUString get_page_title(const OUString& rIdent) const override;
     virtual void do_set_page_sensitive(const OUString& rIdent, bool 
bSensitive) override;
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 2ce1d38c1c3f..88579c26a13b 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -571,7 +571,7 @@ public:
     virtual OUString get_current_page_ident() const override;
     virtual void set_current_page(int nPage) override;
     virtual void set_current_page(const OUString& rIdent) override;
-    virtual void set_page_index(const OUString& rIdent, int nNewIndex) 
override;
+    virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) 
override;
     virtual weld::Container* append_page(const OUString& rIdent) override;
     virtual OUString get_page_title(const OUString& rIdent) const override;
     virtual void do_set_page_title(const OUString& rIdent, const OUString& 
rTitle) override;
diff --git a/vcl/qt5/QtInstanceAssistant.cxx b/vcl/qt5/QtInstanceAssistant.cxx
index 8e0db3905706..8855b806a54e 100644
--- a/vcl/qt5/QtInstanceAssistant.cxx
+++ b/vcl/qt5/QtInstanceAssistant.cxx
@@ -119,7 +119,7 @@ void QtInstanceAssistant::set_current_page(const OUString& 
rIdent)
     });
 }
 
-void QtInstanceAssistant::set_page_index(const OUString& rIdent, int nIndex)
+void QtInstanceAssistant::do_set_page_index(const OUString& rIdent, int nIndex)
 {
     SolarMutexGuard g;
 
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 09db1d193b5c..d425a99fda97 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2123,7 +2123,7 @@ void SalInstanceAssistant::set_current_page(const 
OUString& rIdent)
     set_current_page(nIndex);
 }
 
-void SalInstanceAssistant::set_page_index(const OUString& rIdent, int 
nNewIndex)
+void SalInstanceAssistant::do_set_page_index(const OUString& rIdent, int 
nNewIndex)
 {
     int nOldIndex = find_page(rIdent);
 
@@ -2133,8 +2133,6 @@ void SalInstanceAssistant::set_page_index(const OUString& 
rIdent, int nNewIndex)
     if (nOldIndex == nNewIndex)
         return;
 
-    disable_notify_events();
-
     auto entry = std::move(m_aAddedPages[nOldIndex]);
     m_aAddedPages.erase(m_aAddedPages.begin() + nOldIndex);
     m_aAddedPages.insert(m_aAddedPages.begin() + nNewIndex, std::move(entry));
@@ -2144,8 +2142,6 @@ void SalInstanceAssistant::set_page_index(const OUString& 
rIdent, int nNewIndex)
     m_aIds.insert(m_aIds.begin() + nNewIndex, nId);
 
     m_aUpdateRoadmapIdle.Start();
-
-    enable_notify_events();
 }
 
 weld::Container* SalInstanceAssistant::append_page(const OUString& rIdent)
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 9bc449626177..88faae016873 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -7788,7 +7788,7 @@ public:
         m_aNotClickable[rIdent] = !bSensitive;
     }
 
-    virtual void set_page_index(const OUString& rIdent, int nNewIndex) override
+    virtual void do_set_page_index(const OUString& rIdent, int nNewIndex) 
override
     {
         int nOldIndex = find_page(rIdent);
         if (nOldIndex == -1)

Reply via email to