@@ -547,6 +547,46 @@ pointless_eventbox_subclass_get_type (void)
547
547
return eventbox_type ;
548
548
}
549
549
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
+
550
590
static GtkCellEditable *
551
591
egg_cell_renderer_keys_start_editing (GtkCellRenderer * cell ,
552
592
GdkEvent * event ,
@@ -563,6 +603,9 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
563
603
GtkWidget * label ;
564
604
GtkWidget * eventbox ;
565
605
GValue celltext_editable = {0 };
606
+ GdkRGBA box_color ;
607
+ GdkRGBA label_color ;
608
+ GdkRGBA * c ;
566
609
567
610
celltext = GTK_CELL_RENDERER_TEXT (cell );
568
611
keys = EGG_CELL_RENDERER_KEYS (cell );
@@ -602,11 +645,19 @@ egg_cell_renderer_keys_start_editing (GtkCellRenderer *cell,
602
645
label = gtk_label_new (NULL );
603
646
gtk_label_set_xalign (GTK_LABEL (label ), 0.0 );
604
647
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 );
607
659
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 );
610
661
611
662
gtk_label_set_text (GTK_LABEL (label ),
612
663
TOOLTIP_TEXT );
0 commit comments