diff options
| author | Eric Williams | 2017-07-31 17:33:57 +0000 |
|---|---|---|
| committer | Eric Williams | 2017-07-31 19:32:23 +0000 |
| commit | 5b627dee1b88bd7a659b33fa7c94d1c23506bb75 (patch) | |
| tree | 780e141b57c7311c50e870c2bbd91c18635a266f | |
| parent | 29ab8186773c35c49890a2c3a15f8f7b752eced9 (diff) | |
| download | eclipse.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>
| -rw-r--r-- | bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Button.java | 15 |
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); } /** |
