@@ -1226,20 +1226,41 @@ palette_change_color (GtkWidget *drawing_area,
12261226 g_free (current_colors );
12271227}
12281228
1229+ static void
1230+ override_background_color (GtkWidget * widget ,
1231+ GdkRGBA * rgba )
1232+ {
1233+ gchar * css ;
1234+ GtkCssProvider * provider ;
1235+
1236+ provider = gtk_css_provider_new ();
1237+
1238+ css = g_strdup_printf ("* { background-color: %s;}" ,
1239+ gdk_rgba_to_string (rgba ));
1240+ gtk_css_provider_load_from_data (provider , css , -1 , NULL );
1241+ g_free (css );
1242+
1243+ gtk_style_context_add_provider (gtk_widget_get_style_context (widget ),
1244+ GTK_STYLE_PROVIDER (provider ),
1245+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION );
1246+ g_object_unref (provider );
1247+ }
1248+
12291249/* Changes the view color */
12301250static void
12311251palette_set_color (GtkWidget * drawing_area ,
12321252 MateColorSelection * colorsel ,
12331253 gdouble * color )
12341254{
12351255 gdouble * new_color = g_new (double , 4 );
1236- GdkColor gdk_color ;
1256+ GdkRGBA box_color ;
12371257
1238- gdk_color .red = UNSCALE (color [0 ]);
1239- gdk_color .green = UNSCALE (color [1 ]);
1240- gdk_color .blue = UNSCALE (color [2 ]);
1258+ box_color .red = color [0 ];
1259+ box_color .green = color [1 ];
1260+ box_color .blue = color [2 ];
1261+ box_color .alpha = 1 ;
12411262
1242- gtk_widget_modify_bg (drawing_area , GTK_STATE_NORMAL , & gdk_color );
1263+ override_background_color (drawing_area , & box_color );
12431264
12441265 if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (drawing_area ), "color_set" )) == 0 )
12451266 {
0 commit comments