diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-06-07 17:39:06 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-06-07 17:41:30 +0100 |
commit | 29d0bfee79174ff3b49e3abf4ba10816bfe718b3 (patch) | |
tree | 27bfc24669acfb0be47132a2ef0524882d3a9733 | |
parent | 8b69178ba3c6427ddb1f4601f3819d149457132c (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.cxx | 19 |
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) |