[gnome-flashback] desktop: set RGBA visual



commit 2734b7e0d7c4df589cbd655c97565732979b47fc
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue Oct 29 01:00:34 2019 +0200

    desktop: set RGBA visual
    
    To make desktop window transparent if draw-background setting
    is FALSE.

 gnome-flashback/libdesktop/gf-desktop-window.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
---
diff --git a/gnome-flashback/libdesktop/gf-desktop-window.c b/gnome-flashback/libdesktop/gf-desktop-window.c
index 5dc0c89..161c412 100644
--- a/gnome-flashback/libdesktop/gf-desktop-window.c
+++ b/gnome-flashback/libdesktop/gf-desktop-window.c
@@ -187,6 +187,21 @@ gf_desktop_window_set_property (GObject      *object,
     }
 }
 
+static void
+gf_desktop_window_realize (GtkWidget *widget)
+{
+  GdkScreen *screen;
+  GdkVisual *visual;
+
+  screen = gtk_widget_get_screen (widget);
+  visual = gdk_screen_get_rgba_visual (screen);
+
+  if (visual != NULL)
+    gtk_widget_set_visual (widget, visual);
+
+  GTK_WIDGET_CLASS (gf_desktop_window_parent_class)->realize (widget);
+}
+
 static void
 install_properties (GObjectClass *object_class)
 {
@@ -223,13 +238,17 @@ static void
 gf_desktop_window_class_init (GfDesktopWindowClass *self_class)
 {
   GObjectClass *object_class;
+  GtkWidgetClass *widget_class;
 
   object_class = G_OBJECT_CLASS (self_class);
+  widget_class = GTK_WIDGET_CLASS (self_class);
 
   object_class->constructed = gf_desktop_window_constructed;
   object_class->dispose = gf_desktop_window_dispose;
   object_class->set_property = gf_desktop_window_set_property;
 
+  widget_class->realize = gf_desktop_window_realize;
+
   install_properties (object_class);
   install_signals ();
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]