diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2016-02-17 20:42:52 +0000 |
---|---|---|
committer | Tomaž Vajngerl <quikee@gmail.com> | 2016-02-18 10:39:57 +0000 |
commit | 2fb86ca5316bb5cd982ac9283fae0d9930c692c7 (patch) | |
tree | 7ede9cf69f60dc42aabc647e3e9016f142f21b90 | |
parent | 2b45d15bab35830444bff6ec29c9f37a320f6367 (diff) |
tdf#97922 - get control area right for spinbuttons.
Also avoid caching both spin-buttons and some other complex types.
The cache key needs to be able to include more state.
Change-Id: I8eff6b1c5c51d27afb796cae66b45390433138b4
Reviewed-on: https://gerrit.libreoffice.org/22443
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
-rw-r--r-- | include/vcl/salnativewidgets.hxx | 6 | ||||
-rw-r--r-- | vcl/source/control/spinfld.cxx | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx index 8c1176a2aa95..0789270bbe52 100644 --- a/include/vcl/salnativewidgets.hxx +++ b/include/vcl/salnativewidgets.hxx @@ -288,6 +288,12 @@ public: case CTRL_RADIOBUTTON: case CTRL_LISTNODE: case CTRL_SLIDER: + // FIXME: these guys have complex state hidden in ImplControlValue + // structs which affects rendering, needs to be a and needs to be + // part of the key to our cache. + case CTRL_SPINBOX: + case CTRL_SPINBUTTONS: + case CTRL_TAB_ITEM: return false; case CTRL_MENUBAR: diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx index 8f4bbca23bde..750900f7522a 100644 --- a/vcl/source/control/spinfld.cxx +++ b/vcl/source/control/spinfld.cxx @@ -143,8 +143,9 @@ bool ImplDrawNativeSpinbuttons(vcl::RenderContext& rRenderContext, const Spinbut if (rRenderContext.IsNativeControlSupported(CTRL_SPINBUTTONS, PART_ENTIRE_CONTROL)) { + Rectangle aArea = rSpinbuttonValue.maUpperRect.GetUnion(rSpinbuttonValue.maLowerRect); // only paint the standalone spin buttons, all buttons are painted at once - bNativeOK = rRenderContext.DrawNativeControl(CTRL_SPINBUTTONS, PART_ALL_BUTTONS, Rectangle(), + bNativeOK = rRenderContext.DrawNativeControl(CTRL_SPINBUTTONS, PART_ALL_BUTTONS, aArea, ControlState::ENABLED, rSpinbuttonValue, OUString()); } return bNativeOK; |