[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - vcl/source

Caolán McNamara caolanm at redhat.com
Sun Jun 7 09:41:55 PDT 2015


 vcl/source/window/dockwin.cxx |   19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

New commits:
commit 29d0bfee79174ff3b49e3abf4ba10816bfe718b3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Sun Jun 7 17:39:06 2015 +0100

    Resolves: tdf#89104 Missing actions from toolbar
    
    Toolboxes derive from Docking Windows, they are
    not layout aware, which is ok, but they need
    to tell the thing they are inserted in that their
    state has changed if the parent is layout aware.
    
    i.e. docking windows are not toplevel things like
    dialogs and need to pass on queue_resize to things
    above them
    
    Change-Id: If0eeff90314bef4e828355661a75a0d34a6fc1bc
    (cherry picked from commit 81fb7720e5e40858a43ad6639f71bb125091aefb)

diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index e76b1c6..66fee6c 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -1127,14 +1127,23 @@ Size DockingWindow::GetOptimalSize() const
     return Window::CalcWindowSize(aSize);
 }
 
-void DockingWindow::queue_resize(StateChangedType /*eReason*/)
+void DockingWindow::queue_resize(StateChangedType eReason)
 {
+    bool bTriggerLayout = true;
     if (hasPendingLayout() || isCalculatingInitialLayoutSize())
-        return;
+    {
+        bTriggerLayout = false;
+    }
     if (!isLayoutEnabled())
-        return;
-    InvalidateSizeCache();
-    maLayoutIdle.Start();
+    {
+        bTriggerLayout = false;
+    }
+    if (bTriggerLayout)
+    {
+        InvalidateSizeCache();
+        maLayoutIdle.Start();
+    }
+    vcl::Window::queue_resize(eReason);
 }
 
 IMPL_LINK_NOARG_TYPED(DockingWindow, ImplHandleLayoutTimerHdl, Idle*, void)


More information about the Libreoffice-commits mailing list