vcl/unx/gtk3/gtk3gtkinst.cxx |   13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

New commits:
commit 8fb0a3dd9f3dc68bdd5670d2d071e6f225111dc7
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Mar 25 14:45:45 2019 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Mon Mar 25 22:14:49 2019 +0100

    Resolves: tdf#124234 page leave signal missing on move to overflow deck
    
    we were emitting page-entered but not emitting the page-leave signal
    
    Change-Id: I64131631016331cf102d08244982148ac8c3c69c
    Reviewed-on: https://gerrit.libreoffice.org/69685
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index d7286685dbcb..4dd06f61b4eb 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3570,6 +3570,11 @@ private:
             return;
         }
 
+        // check if we are allowed leave before attempting to resplit the 
notebooks
+        bool bAllow = !m_aLeavePageHdl.IsSet() || 
m_aLeavePageHdl.Call(get_current_page_ident());
+        if (!bAllow)
+            return;
+
         disable_notify_events();
 
         // take the overflow pages, and put them back at the end of the normal 
one
@@ -3579,11 +3584,13 @@ private:
         std::swap(m_nStartTabCount, m_nEndTabCount);
         split_notebooks();
 
+        gtk_notebook_set_current_page(m_pNotebook, nNewPage);
+
         enable_notify_events();
 
-        // we want to call this outside enable_notify_events so that the main
-        // notebook switch-page callback is triggered
-        gtk_notebook_set_current_page(m_pNotebook, nNewPage);
+        // trigger main notebook switch-page callback
+        OString sNewIdent(get_page_ident(m_pNotebook, nNewPage));
+        m_aEnterPageHdl.Call(sNewIdent);
     }
 
     static OString get_page_ident(GtkNotebook *pNotebook, guint nPage)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to