forked from osmocom/wireshark
Rewrote to use gtk_widget_modify_text() and gtk_widget_modify_base()
to change the background color for filter text edit boxes, because gtk_widget_set_style() interacts badly with themes. Go back to default values when filter is empty (instead of white). Also rewrote the same in the "Edit Color Filter" dialog. svn path=/trunk/; revision=26421
This commit is contained in:
parent
b49434dcd2
commit
2046b2731d
|
@ -96,7 +96,7 @@ edit_color_filter_dialog(GtkWidget *color_filters,
|
||||||
GtkWidget *edit_dialog;
|
GtkWidget *edit_dialog;
|
||||||
GtkWidget *dialog_vbox;
|
GtkWidget *dialog_vbox;
|
||||||
GtkTooltips *tooltips;
|
GtkTooltips *tooltips;
|
||||||
GtkStyle *style;
|
GdkColor bg_color, fg_color;
|
||||||
|
|
||||||
GtkWidget *filter_fr;
|
GtkWidget *filter_fr;
|
||||||
GtkWidget *filter_fr_vbox;
|
GtkWidget *filter_fr_vbox;
|
||||||
|
@ -164,10 +164,11 @@ edit_color_filter_dialog(GtkWidget *color_filters,
|
||||||
filt_name_entry = gtk_entry_new ();
|
filt_name_entry = gtk_entry_new ();
|
||||||
gtk_entry_set_text(GTK_ENTRY(filt_name_entry), colorf->filter_name);
|
gtk_entry_set_text(GTK_ENTRY(filt_name_entry), colorf->filter_name);
|
||||||
|
|
||||||
style = gtk_style_copy(gtk_widget_get_style(filt_name_entry));
|
color_t_to_gdkcolor(&bg_color, &colorf->bg_color);
|
||||||
color_t_to_gdkcolor(&style->base[GTK_STATE_NORMAL], &colorf->bg_color);
|
color_t_to_gdkcolor(&fg_color, &colorf->fg_color);
|
||||||
color_t_to_gdkcolor(&style->text[GTK_STATE_NORMAL], &colorf->fg_color);
|
|
||||||
gtk_widget_set_style(filt_name_entry, style);
|
gtk_widget_modify_base(filt_name_entry, GTK_STATE_NORMAL, &bg_color);
|
||||||
|
gtk_widget_modify_text(filt_name_entry, GTK_STATE_NORMAL, &fg_color);
|
||||||
|
|
||||||
gtk_box_pack_start (GTK_BOX (filter_name_hbox), filt_name_entry, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (filter_name_hbox), filt_name_entry, TRUE, TRUE, 0);
|
||||||
gtk_tooltips_set_tip (tooltips, filt_name_entry, ("This is the editable name of the filter. (No @ characters allowed.)"), NULL);
|
gtk_tooltips_set_tip (tooltips, filt_name_entry, ("This is the editable name of the filter. (No @ characters allowed.)"), NULL);
|
||||||
|
@ -184,7 +185,6 @@ edit_color_filter_dialog(GtkWidget *color_filters,
|
||||||
g_signal_connect(filt_text_entry, "changed", G_CALLBACK(filter_te_syntax_check_cb), NULL);
|
g_signal_connect(filt_text_entry, "changed", G_CALLBACK(filter_te_syntax_check_cb), NULL);
|
||||||
gtk_entry_set_text(GTK_ENTRY(filt_text_entry), colorf->filter_text);
|
gtk_entry_set_text(GTK_ENTRY(filt_text_entry), colorf->filter_text);
|
||||||
|
|
||||||
gtk_style_unref(style);
|
|
||||||
gtk_box_pack_start (GTK_BOX (filter_string_hbox), filt_text_entry, TRUE, TRUE, 0);
|
gtk_box_pack_start (GTK_BOX (filter_string_hbox), filt_text_entry, TRUE, TRUE, 0);
|
||||||
gtk_tooltips_set_tip (tooltips, filt_text_entry, ("This is the editable text of the filter"), NULL);
|
gtk_tooltips_set_tip (tooltips, filt_text_entry, ("This is the editable text of the filter"), NULL);
|
||||||
|
|
||||||
|
@ -527,7 +527,6 @@ color_sel_ok_cb (GtkButton *button _U_,
|
||||||
{
|
{
|
||||||
GdkColor new_color; /* Color from color selection dialog */
|
GdkColor new_color; /* Color from color selection dialog */
|
||||||
GtkWidget *color_dialog;
|
GtkWidget *color_dialog;
|
||||||
GtkStyle *style;
|
|
||||||
GtkWidget *parent;
|
GtkWidget *parent;
|
||||||
GtkWidget *color_selection_fg, *color_selection_bg;
|
GtkWidget *color_selection_fg, *color_selection_bg;
|
||||||
gboolean is_bg;
|
gboolean is_bg;
|
||||||
|
@ -554,15 +553,10 @@ color_sel_ok_cb (GtkButton *button _U_,
|
||||||
color_sel_win_destroy(color_dialog);
|
color_sel_win_destroy(color_dialog);
|
||||||
|
|
||||||
/* now apply the change to the fore/background */
|
/* now apply the change to the fore/background */
|
||||||
|
|
||||||
style = gtk_style_copy(gtk_widget_get_style(filt_name_entry));
|
|
||||||
if (is_bg)
|
if (is_bg)
|
||||||
style->base[GTK_STATE_NORMAL] = new_color;
|
gtk_widget_modify_base(filt_name_entry, GTK_STATE_NORMAL, &new_color);
|
||||||
else
|
else
|
||||||
style->text[GTK_STATE_NORMAL] = new_color;
|
gtk_widget_modify_text(filt_name_entry, GTK_STATE_NORMAL, &new_color);
|
||||||
|
|
||||||
gtk_widget_set_style(filt_name_entry, style);
|
|
||||||
gtk_style_unref(style);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1246,25 +1246,30 @@ filter_add_expr_bt_cb(GtkWidget *w _U_, gpointer main_w_arg)
|
||||||
static void
|
static void
|
||||||
color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
|
color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
|
||||||
{
|
{
|
||||||
|
static GdkColor black = { 0, 0, 0, 0 };
|
||||||
GdkColor bg;
|
GdkColor bg;
|
||||||
GtkStyle *style;
|
|
||||||
|
|
||||||
bg.pixel = 0;
|
bg.pixel = 0;
|
||||||
bg.red = red;
|
bg.red = red;
|
||||||
bg.green = green;
|
bg.green = green;
|
||||||
bg.blue = blue;
|
bg.blue = blue;
|
||||||
|
|
||||||
style = gtk_style_copy(gtk_widget_get_style(w));
|
gtk_widget_modify_text(w, GTK_STATE_NORMAL, &black);
|
||||||
style->base[GTK_STATE_NORMAL] = bg;
|
gtk_widget_modify_base(w, GTK_STATE_NORMAL, &bg);
|
||||||
gtk_widget_set_style(w, style);
|
#if GTK_CHECK_VERSION(2,12,0)
|
||||||
gtk_style_unref(style);
|
gtk_widget_modify_cursor(w, &black, &black);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
colorize_filter_te_as_empty(GtkWidget *w)
|
colorize_filter_te_as_empty(GtkWidget *w)
|
||||||
{
|
{
|
||||||
/* white */
|
/* use defaults */
|
||||||
color_filter_te(w, 0xFFFF, 0xFFFF, 0xFFFF);
|
gtk_widget_modify_text(w, GTK_STATE_NORMAL, NULL);
|
||||||
|
gtk_widget_modify_base(w, GTK_STATE_NORMAL, NULL);
|
||||||
|
#if GTK_CHECK_VERSION(2,12,0)
|
||||||
|
gtk_widget_modify_cursor(w, NULL, NULL);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue