summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-06-07 17:39:06 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-06-07 17:41:30 +0100
commit29d0bfee79174ff3b49e3abf4ba10816bfe718b3 (patch)
tree27bfc24669acfb0be47132a2ef0524882d3a9733
parent8b69178ba3c6427ddb1f4601f3819d149457132c (diff)
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)
-rw-r--r--vcl/source/window/dockwin.cxx19
1 files changed, 14 insertions, 5 deletions
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index e76b1c629809..66fee6c7061b 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)