Skip to content

Commit 6d1a4aa

Browse files
sc0wlukefromdc
authored andcommitted
eggcellrendererkeys: avoid deprecated 'gtk_widget_modify_bg/fg'
1 parent bde8d11 commit 6d1a4aa

File tree

1 file changed

+55
-4
lines changed

1 file changed

+55
-4
lines changed

capplets/keybindings/eggcellrendererkeys.c

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,46 @@ pointless_eventbox_subclass_get_type (void)
547547
return eventbox_type;
548548
}
549549

550+
static void
551+
override_background_color (GtkWidget *widget,
552+
GdkRGBA *rgba)
553+
{
554+
gchar *css;
555+
GtkCssProvider *provider;
556+
557+
provider = gtk_css_provider_new ();
558+
559+
css = g_strdup_printf ("* { background-color: %s;}",
560+
gdk_rgba_to_string (rgba));
561+
gtk_css_provider_load_from_data (provider, css, -1, NULL);
562+
g_free (css);
563+
564+
gtk_style_context_add_provider (gtk_widget_get_style_context (widget),
565+
GTK_STYLE_PROVIDER (provider),
566+
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
567+
g_object_unref (provider);
568+
}
569+
570+
static void
571+
override_color (GtkWidget *widget,
572+
GdkRGBA *rgba)
573+
{
574+
gchar *css;
575+
GtkCssProvider *provider;
576+
577+
provider = gtk_css_provider_new ();
578+
579+
css = g_strdup_printf ("* { color: %s;}",
580+
gdk_rgba_to_string (rgba));
581+
gtk_css_provider_load_from_data (provider, css, -1, NULL);
582+
g_free (css);
583+
584+
gtk_style_context_add_provider (gtk_widget_get_style_context (widget),
585+
GTK_STYLE_PROVIDER (provider),
586+
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
587+
g_object_unref (provider);
588+
}
589+
550590
static GtkCellEditable *
551591
egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
552592
GdkEvent *event,
@@ -563,6 +603,9 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
563603
GtkWidget *label;
564604
GtkWidget *eventbox;
565605
GValue celltext_editable = {0};
606+
GdkRGBA box_color;
607+
GdkRGBA label_color;
608+
GdkRGBA *c;
566609

567610
celltext = GTK_CELL_RENDERER_TEXT (cell);
568611
keys = EGG_CELL_RENDERER_KEYS (cell);
@@ -602,11 +645,19 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
602645
label = gtk_label_new (NULL);
603646
gtk_label_set_xalign (GTK_LABEL (label), 0.0);
604647

605-
gtk_widget_modify_bg (eventbox, GTK_STATE_NORMAL,
606-
&gtk_widget_get_style (widget)->bg[GTK_STATE_SELECTED]);
648+
gtk_style_context_get (gtk_widget_get_style_context (widget), GTK_STATE_INSENSITIVE,
649+
GTK_STYLE_PROPERTY_BACKGROUND_COLOR,
650+
&c, NULL);
651+
box_color = *c;
652+
gdk_rgba_free (c);
653+
654+
override_background_color (eventbox, &box_color);
655+
656+
gtk_style_context_get_color (gtk_widget_get_style_context (widget),
657+
GTK_STATE_INSENSITIVE,
658+
&label_color);
607659

608-
gtk_widget_modify_fg (label, GTK_STATE_NORMAL,
609-
&gtk_widget_get_style (widget)->fg[GTK_STATE_SELECTED]);
660+
override_color (label, &label_color);
610661

611662
gtk_label_set_text (GTK_LABEL (label),
612663
TOOLTIP_TEXT);

0 commit comments

Comments
 (0)