summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <eszkadev@gmail.com>2015-02-19 12:05:50 +0100
committerCaolán McNamara <caolanm@redhat.com>2015-02-19 11:28:13 +0000
commitb4b844f4d391ba0491dc748f3d5853bef47d9405 (patch)
tree4d40edf695efaf458a7462423a3fc185d2d5b5dd
parent336dd506c0978faf914279de56c125949920223e (diff)
gtk3: improved checkbox and radiobutton rendering
Change-Id: I6da03869dea172fb8d50396010152479afec9cde Reviewed-on: https://gerrit.libreoffice.org/14554 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
index 79e17d85107a..1f906c59f34c 100644
--- a/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gdi/gtk3salnativewidgets-gtk.cxx
@@ -785,6 +785,12 @@ void GtkSalGraphics::PaintCheckOrRadio(GtkStyleContext *context,
gtk_render_option(context, cr, x, y, indicator_size, indicator_size);
}
+#if GTK_CHECK_VERSION(3,14,0)
+# define CHECKED_AND_ACTIVE (GTK_STATE_FLAG_CHECKED | GTK_STATE_FLAG_ACTIVE)
+#else
+# define CHECKED_AND_ACTIVE GTK_STATE_FLAG_ACTIVE
+#endif
+
bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, const Rectangle& rControlRegion,
ControlState nState, const ImplControlValue& aValue,
const OUString& )
@@ -869,7 +875,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
break;
case CTRL_CHECKBOX:
flags = (GtkStateFlags)(flags |
- ( (aValue.getTristateVal() == BUTTONVALUE_ON) ? GTK_STATE_FLAG_ACTIVE :
+ ( (aValue.getTristateVal() == BUTTONVALUE_ON) ? CHECKED_AND_ACTIVE :
(aValue.getTristateVal() == BUTTONVALUE_MIXED) ? GTK_STATE_FLAG_INCONSISTENT :
GTK_STATE_FLAG_NORMAL));
context = mpCheckButtonStyle;
@@ -878,7 +884,7 @@ bool GtkSalGraphics::drawNativeControl( ControlType nType, ControlPart nPart, co
break;
case CTRL_RADIOBUTTON:
flags = (GtkStateFlags)(flags |
- ( (aValue.getTristateVal() == BUTTONVALUE_ON) ? GTK_STATE_FLAG_ACTIVE : GTK_STATE_FLAG_NORMAL));
+ ( (aValue.getTristateVal() == BUTTONVALUE_ON) ? CHECKED_AND_ACTIVE : GTK_STATE_FLAG_NORMAL));
context = mpCheckButtonStyle;
styleClass = GTK_STYLE_CLASS_RADIO;
renderType = RENDER_RADIO;