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 *dialog_vbox;
|
||||
GtkTooltips *tooltips;
|
||||
GtkStyle *style;
|
||||
GdkColor bg_color, fg_color;
|
||||
|
||||
GtkWidget *filter_fr;
|
||||
GtkWidget *filter_fr_vbox;
|
||||
|
@ -164,10 +164,11 @@ edit_color_filter_dialog(GtkWidget *color_filters,
|
|||
filt_name_entry = gtk_entry_new ();
|
||||
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(&style->base[GTK_STATE_NORMAL], &colorf->bg_color);
|
||||
color_t_to_gdkcolor(&style->text[GTK_STATE_NORMAL], &colorf->fg_color);
|
||||
gtk_widget_set_style(filt_name_entry, style);
|
||||
color_t_to_gdkcolor(&bg_color, &colorf->bg_color);
|
||||
color_t_to_gdkcolor(&fg_color, &colorf->fg_color);
|
||||
|
||||
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_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);
|
||||
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_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 */
|
||||
GtkWidget *color_dialog;
|
||||
GtkStyle *style;
|
||||
GtkWidget *parent;
|
||||
GtkWidget *color_selection_fg, *color_selection_bg;
|
||||
gboolean is_bg;
|
||||
|
@ -554,15 +553,10 @@ color_sel_ok_cb (GtkButton *button _U_,
|
|||
color_sel_win_destroy(color_dialog);
|
||||
|
||||
/* now apply the change to the fore/background */
|
||||
|
||||
style = gtk_style_copy(gtk_widget_get_style(filt_name_entry));
|
||||
if (is_bg)
|
||||
style->base[GTK_STATE_NORMAL] = new_color;
|
||||
gtk_widget_modify_base(filt_name_entry, GTK_STATE_NORMAL, &new_color);
|
||||
else
|
||||
style->text[GTK_STATE_NORMAL] = new_color;
|
||||
|
||||
gtk_widget_set_style(filt_name_entry, style);
|
||||
gtk_style_unref(style);
|
||||
gtk_widget_modify_text(filt_name_entry, GTK_STATE_NORMAL, &new_color);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1246,25 +1246,30 @@ filter_add_expr_bt_cb(GtkWidget *w _U_, gpointer main_w_arg)
|
|||
static void
|
||||
color_filter_te(GtkWidget *w, guint16 red, guint16 green, guint16 blue)
|
||||
{
|
||||
static GdkColor black = { 0, 0, 0, 0 };
|
||||
GdkColor bg;
|
||||
GtkStyle *style;
|
||||
|
||||
bg.pixel = 0;
|
||||
bg.red = red;
|
||||
bg.green = green;
|
||||
bg.blue = blue;
|
||||
|
||||
style = gtk_style_copy(gtk_widget_get_style(w));
|
||||
style->base[GTK_STATE_NORMAL] = bg;
|
||||
gtk_widget_set_style(w, style);
|
||||
gtk_style_unref(style);
|
||||
gtk_widget_modify_text(w, GTK_STATE_NORMAL, &black);
|
||||
gtk_widget_modify_base(w, GTK_STATE_NORMAL, &bg);
|
||||
#if GTK_CHECK_VERSION(2,12,0)
|
||||
gtk_widget_modify_cursor(w, &black, &black);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
colorize_filter_te_as_empty(GtkWidget *w)
|
||||
{
|
||||
/* white */
|
||||
color_filter_te(w, 0xFFFF, 0xFFFF, 0xFFFF);
|
||||
/* use defaults */
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue