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:40:54 +0100
commit81fb7720e5e40858a43ad6639f71bb125091aefb (patch)
tree4e38fb9ee16fec371c62ac0a2ed9320d4035633b
parent16f1477a2dd47d92bf754d437c6b5127c533f076 (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
-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 658e8dbc4fcb..82faffbde8b6 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)