summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-04-09 14:43:09 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-04-09 14:58:45 +0100
commitb39a6449d5debc7cdf55c3f967b441f3de4d50f3 (patch)
treeb93c9837472f595698ec93d29dc6078fd7ab544c /vcl
parent2355a3458598f62c78301d503fdab24010c58f09 (diff)
Resolves: tdf#90384 queue_resize needs to Invalidate the optimal cache size
but the PanelLayout didn't Change-Id: I38a8975f1488fa2a2ffe91b66745e1a1c6c48a28
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/dockwin.cxx4
-rw-r--r--vcl/source/window/syswin.cxx4
-rw-r--r--vcl/source/window/window2.cxx13
3 files changed, 12 insertions, 9 deletions
diff --git a/vcl/source/window/dockwin.cxx b/vcl/source/window/dockwin.cxx
index 5a0df3cbaa46..94e32d34abf5 100644
--- a/vcl/source/window/dockwin.cxx
+++ b/vcl/source/window/dockwin.cxx
@@ -1114,9 +1114,7 @@ void DockingWindow::queue_resize(StateChangedType /*eReason*/)
return;
if (!isLayoutEnabled())
return;
- WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
- pWindowImpl->mnOptimalWidthCache = -1;
- pWindowImpl->mnOptimalHeightCache = -1;
+ InvalidateSizeCache();
maLayoutIdle.Start();
}
diff --git a/vcl/source/window/syswin.cxx b/vcl/source/window/syswin.cxx
index 1455c3b93e2a..c5d0522dc0e1 100644
--- a/vcl/source/window/syswin.cxx
+++ b/vcl/source/window/syswin.cxx
@@ -997,9 +997,7 @@ void SystemWindow::queue_resize(StateChangedType /*eReason*/)
return;
if (!isLayoutEnabled())
return;
- WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
- pWindowImpl->mnOptimalWidthCache = -1;
- pWindowImpl->mnOptimalHeightCache = -1;
+ InvalidateSizeCache();
maLayoutIdle.Start();
}
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 691b92cd2ebc..e6672875f7c4 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -1427,16 +1427,23 @@ namespace
}
}
+void Window::InvalidateSizeCache()
+{
+ WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
+ pWindowImpl->mnOptimalWidthCache = -1;
+ pWindowImpl->mnOptimalHeightCache = -1;
+}
+
void Window::queue_resize(StateChangedType eReason)
{
bool bSomeoneCares = queue_ungrouped_resize(this);
- WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
if (eReason != StateChangedType::VISIBLE)
{
- pWindowImpl->mnOptimalWidthCache = -1;
- pWindowImpl->mnOptimalHeightCache = -1;
+ InvalidateSizeCache();
}
+
+ WindowImpl *pWindowImpl = mpWindowImpl->mpBorderWindow ? mpWindowImpl->mpBorderWindow->mpWindowImpl : mpWindowImpl;
if (pWindowImpl->m_xSizeGroup && pWindowImpl->m_xSizeGroup->get_mode() != VCL_SIZE_GROUP_NONE)
{
std::set<vcl::Window*> &rWindows = pWindowImpl->m_xSizeGroup->get_widgets();