summaryrefslogtreecommitdiff
path: root/ui/gtk/filter_dlg.c
diff options
context:
space:
mode:
authorBalint Reczey <balint@balintreczey.hu>2014-06-24 14:58:46 +0200
committerEvan Huus <eapache@gmail.com>2014-06-24 22:01:22 +0000
commit09b86bdb0ce6602f1c15a8fccd4057aeb1d2e823 (patch)
treeec69cd3bf3dfa1fe406d4d8b75a39a1d4eccc9e0 /ui/gtk/filter_dlg.c
parent2a1e3d16aae8bf52c4d8fa9c950ae0e571f16fd2 (diff)
downloadwireshark-09b86bdb0ce6602f1c15a8fccd4057aeb1d2e823.tar.gz
GTK3: Fix changing filter expression's bg color based on validity
Bug: 8598 Change-Id: Id5a52c05cab25df9e228b1b4d2caf07335c1f4c8 Reviewed-on: https://code.wireshark.org/review/2614 Reviewed-by: Anders Broman <a.broman58@gmail.com> Reviewed-by: Evan Huus <eapache@gmail.com>
Diffstat (limited to 'ui/gtk/filter_dlg.c')
-rw-r--r--ui/gtk/filter_dlg.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/ui/gtk/filter_dlg.c b/ui/gtk/filter_dlg.c
index 9663c221bb..9fb4cc5e18 100644
--- a/ui/gtk/filter_dlg.c
+++ b/ui/gtk/filter_dlg.c
@@ -1240,20 +1240,32 @@ filter_add_expr_bt_cb(GtkWidget *w _U_, gpointer main_w_arg)
}
}
+
+#if GTK_CHECK_VERSION(3,0,0)
+static void
+ws_style_widget_using_css(GtkWidget *w, const gchar * const css)
+{
+ GtkCssProvider *css_provider;
+ GtkStyleContext *style;
+ css_provider = gtk_css_provider_new();;
+ style = gtk_widget_get_style_context (w);
+ gtk_css_provider_load_from_data(css_provider, css, -1, NULL);
+ gtk_style_context_add_provider(style, GTK_STYLE_PROVIDER(css_provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref(css_provider);
+}
+#endif
+
static void
color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
{
#if GTK_CHECK_VERSION(3,0,0)
static GdkRGBA black = { 0, 0, 0, 1.0 };
- GdkRGBA bg;
-
- bg.red = red / 65535.0;
- bg.green = green / 65535.0;
- bg.blue = blue / 65535.0;
- bg.alpha = 1;
+ gchar *css;
+ css = g_strdup_printf("@define-color theme_selected_bg_color @selected_bg_color; GtkEntry {background: rgb(%d, %d, %d);} .entry:selected {background-color: @theme_selected_bg_color;}", red / 256, green/256, blue/256);
+ ws_style_widget_using_css(w, css);
+ g_free(css);
gtk_widget_override_color(w, GTK_STATE_FLAG_NORMAL, &black);
- gtk_widget_override_background_color(w, GTK_STATE_FLAG_NORMAL, &bg);
gtk_widget_override_cursor(w, &black, &black);
#else
static GdkColor black = { 0, 0, 0, 0 };
@@ -1276,7 +1288,7 @@ colorize_filter_te_as_empty(GtkWidget *w)
#if GTK_CHECK_VERSION(3,0,0)
/* use defaults */
gtk_widget_override_color(w, GTK_STATE_FLAG_NORMAL, NULL);
- gtk_widget_override_background_color(w, GTK_STATE_FLAG_NORMAL, NULL);
+ ws_style_widget_using_css(w, "@define-color theme_base_color @base_color; * {background: @theme_base_color}");
gtk_widget_override_cursor(w, NULL, NULL);
#else
/* use defaults */