summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2016-02-17 20:42:52 +0000
committerTomaž Vajngerl <quikee@gmail.com>2016-02-18 10:39:57 +0000
commit2fb86ca5316bb5cd982ac9283fae0d9930c692c7 (patch)
tree7ede9cf69f60dc42aabc647e3e9016f142f21b90
parent2b45d15bab35830444bff6ec29c9f37a320f6367 (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.hxx6
-rw-r--r--vcl/source/control/spinfld.cxx3
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;