[gtk+/gdk-backend-wayland] gtkwidget: Only call X GDK functions when the window is an X window



commit b4129c14cbd2d20d37252c74c6af1b7ecc0511c1
Author: Kristian Høgsberg <krh bitplanet net>
Date:   Thu Feb 10 13:44:45 2011 -0500

    gtkwidget: Only call X GDK functions when the window is an X window

 gtk/gtkwindow.c |   34 ++++++++++++++++++++++------------
 1 files changed, 22 insertions(+), 12 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 7336d02..4a1452c 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -1698,7 +1698,7 @@ gtk_window_set_startup_id (GtkWindow   *window,
       gdk_window = gtk_widget_get_window (widget);
 
 #ifdef GDK_WINDOWING_X11
-      if (timestamp != GDK_CURRENT_TIME)
+      if (timestamp != GDK_CURRENT_TIME && GDK_IS_X11_WINDOW(gdk_window))
 	gdk_x11_window_set_user_time (gdk_window, timestamp);
 #endif
 
@@ -4612,7 +4612,8 @@ gtk_window_show (GtkWidget *widget)
   /* Try to make sure that we have some focused widget
    */
 #ifdef GDK_WINDOWING_X11
-  is_plug = GTK_IS_PLUG (window);
+  is_plug = GDK_IS_X11_WINDOW (gtk_widget_get_window (widget)) &&
+    GTK_IS_PLUG (window);
 #else
   is_plug = FALSE;
 #endif
@@ -4978,12 +4979,18 @@ gtk_window_realize (GtkWidget *widget)
   if (priv->startup_id)
     {
 #ifdef GDK_WINDOWING_X11
-      guint32 timestamp = extract_time_from_startup_id (priv->startup_id);
-      if (timestamp != GDK_CURRENT_TIME)
-	gdk_x11_window_set_user_time (gdk_window, timestamp);
+      if (GDK_IS_X11_WINDOW (gdk_window))
+	{
+	  guint32 timestamp = extract_time_from_startup_id (priv->startup_id);
+	  if (timestamp != GDK_CURRENT_TIME)
+	    gdk_x11_window_set_user_time (gdk_window, timestamp);
+	}
+      else
 #endif
-      if (!startup_id_is_fake (priv->startup_id)) 
-	gdk_window_set_startup_id (gdk_window, priv->startup_id);
+      {
+	if (!startup_id_is_fake (priv->startup_id)) 
+	  gdk_window_set_startup_id (gdk_window, priv->startup_id);
+      }
     }
   
   /* Icons */
@@ -7352,13 +7359,16 @@ gtk_window_present_with_time (GtkWindow *window,
       if (timestamp == GDK_CURRENT_TIME)
         {
 #ifdef GDK_WINDOWING_X11
-          GdkDisplay *display;
+	  if (GDK_IS_X11_WINDOW(gdk_window))
+	    {
+	      GdkDisplay *display;
 
-          display = gtk_widget_get_display (GTK_WIDGET (window));
-          timestamp = gdk_x11_display_get_user_time (display);
-#else
-          timestamp = gtk_get_current_event_time ();
+	      display = gtk_widget_get_display (GTK_WIDGET (window));
+	      timestamp = gdk_x11_display_get_user_time (display);
+	    }
+	  else
 #endif
+	    timestamp = gtk_get_current_event_time ();
         }
 
       gdk_window_focus (gdk_window, timestamp);



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