diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2016-02-17 20:42:52 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2016-02-17 21:30:24 +0000 |
commit | 469ce3ed324c784a2af1e2fdb0a1f09e28170def (patch) | |
tree | e8df7fbbe2809b40a3ececd2567fbcffd6acbab6 | |
parent | a7258efa96a193bbea6c25e17fe7c7d5a2c68a3b (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
-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 55de313c8219..0b60312df0e2 100644 --- a/include/vcl/salnativewidgets.hxx +++ b/include/vcl/salnativewidgets.hxx @@ -286,6 +286,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 1ef9c96694c9..e0bcf16eeb77 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; |