diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-11-24 10:03:23 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-11-24 13:31:05 +0100 |
commit | 2454f3e40ea6b1a423a143e0c4ba8581b5bc65f8 (patch) | |
tree | 993283147e036f7c54c28fe530093c0ed590a11f /svtools | |
parent | 9c1c43d4b94f75d97af319122312cbf7202f0cc6 (diff) |
tdf#138430 schedule a reformat if we turned off the scrollbar
Change-Id: Ida7d7419f0513624071b31820660add93ac78615
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106486
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/control/valueset.cxx | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/svtools/source/control/valueset.cxx b/svtools/source/control/valueset.cxx index e81aeb2745bd..c9a94de237a1 100644 --- a/svtools/source/control/valueset.cxx +++ b/svtools/source/control/valueset.cxx @@ -549,14 +549,15 @@ void ValueSet::RemoveItem( sal_uInt16 nItemId ) QueueReformat(); } -void ValueSet::TurnOffScrollBar() +bool ValueSet::TurnOffScrollBar() { if (mxScrolledWindow->get_vpolicy() == VclPolicyType::NEVER) - return; + return false; mxScrolledWindow->set_vpolicy(VclPolicyType::NEVER); weld::DrawingArea* pDrawingArea = GetDrawingArea(); Size aPrefSize(pDrawingArea->get_preferred_size()); pDrawingArea->set_size_request(aPrefSize.Width() + GetScrollWidth(), aPrefSize.Height()); + return true; } void ValueSet::TurnOnScrollBar() @@ -571,11 +572,16 @@ void ValueSet::TurnOnScrollBar() void ValueSet::RecalcScrollBar() { - // reset scrolled window state to initial value - // so it will get configured to the right adjustment - WinBits nStyle = GetStyle(); - if (mxScrolledWindow && (nStyle & WB_VSCROLL)) - TurnOffScrollBar(); + if (!mxScrolledWindow) + return; + const bool bScrollAllowed = GetStyle() & WB_VSCROLL; + if (!bScrollAllowed) + return; + // reset scrolled window state to initial value so it will get configured + // to the right adjustment on the next format which we toggle on to happen + // if the scrolledwindow wasn't in its initial state already + if (TurnOffScrollBar()) + mbFormat = true; } void ValueSet::Clear() |