Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Williams2017-07-31 17:33:57 +0000
committerEric Williams2017-07-31 19:32:23 +0000
commit5b627dee1b88bd7a659b33fa7c94d1c23506bb75 (patch)
tree780e141b57c7311c50e870c2bbd91c18635a266f /bundles/org.eclipse.swt/Eclipse SWT/gtk/org
parent29ab8186773c35c49890a2c3a15f8f7b752eced9 (diff)
downloadeclipse.platform.swt-5b627dee1b88bd7a659b33fa7c94d1c23506bb75.tar.gz
eclipse.platform.swt-5b627dee1b88bd7a659b33fa7c94d1c23506bb75.tar.xz
eclipse.platform.swt-5b627dee1b88bd7a659b33fa7c94d1c23506bb75.zip
Bug 519576: [GTK3] Use GTK CSS for background/foreground colors on
GTK3.14 and below Cache GTK CSS that is set in Button.gtk_swt_set_border_color(). This prevents the foreground color from being wiped out after setting it. This also fixes a failing test case in the e4.ui.css.swt test suite. The failing test case was Button.testColor(). Tested on GTK3.16, 3.14, and 3.10. All other versions are unaffected by this change. Change-Id: Id94031458e95b78a1ec97358e116b58488df93dd Signed-off-by: Eric Williams <ericwill@redhat.com>
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT/gtk/org')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
index 89ccd944c9..8912d87ad2 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java
@@ -979,9 +979,20 @@ private void gtk_swt_set_border_color (GdkRGBA rgba) {
String css_color = display.gtk_rgba_to_css_string (rgba);
css_string += "border-color: " + css_color + ";\n";
}
- css_string += "}\n";
+ css_string += "}\n";
+
+ String finalCss;
+ if (OS.GTK_VERSION >= OS.VERSION(3, 14, 0)) {
+ // Cache foreground color
+ cssForeground += "\n" + css_string;
+ finalCss = display.gtk_css_create_css_color_string (cssBackground, cssForeground, SWT.FOREGROUND);
+ } else {
+ finalCss = css_string;
+ }
+
+ // Apply the CSS
long /*int*/context = OS.gtk_widget_get_style_context (handle);
- gtk_css_provider_load_from_css (context, css_string);
+ gtk_css_provider_load_from_css (context, finalCss);
}
/**

Back to the top