[gtk+] Fix CSD check for Win32



commit e45ea70936ee30344b96ab99c7651fef58ebd4ff
Author: Manuel Bachmann <tarnyko tarnyko net>
Date:   Wed Nov 27 11:14:16 2013 +0100

    Fix CSD check for Win32
    
    Win32 does not have alpha channel currently ; fix the check
    for this, so trying to enable CSDs on this platform will
    not "succeed" and crash the app anymore.
    
    Partially fixes gtk3-widget-factory.

 gtk/gtkwindow.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 056260f..29c3fcc 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -61,6 +61,10 @@
 #include "x11/gdkx.h"
 #endif
 
+#ifdef GDK_WINDOWING_WIN32
+#include "win32/gdkwin32.h"
+#endif
+
 #ifdef GDK_WINDOWING_WAYLAND
 #include "wayland/gdkwayland.h"
 #endif
@@ -3507,6 +3511,21 @@ gdk_window_supports_csd (GtkWindow *window)
     }
 #endif
 
+#ifdef GDK_WINDOWING_WIN32
+  if (GDK_IS_WIN32_DISPLAY (gtk_widget_get_display (widget)))
+    {
+      GdkScreen *screen;
+      GdkVisual *visual;
+
+      screen = gtk_widget_get_screen (widget);
+
+      /* We need a visual with alpha */
+      visual = gdk_screen_get_rgba_visual (screen);
+      if (!visual)
+        return FALSE;
+    }
+#endif
+
   return TRUE;
 }
 


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