]> Pileus Git - ~andy/gtk/commitdiff
gtkwidget: Only call X GDK functions when the window is an X window
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 10 Feb 2011 18:44:45 +0000 (13:44 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 10 Feb 2011 18:44:45 +0000 (13:44 -0500)
gtk/gtkwindow.c

index 7336d025d89e86162732016332fb172be8bc4088..4a1452c39c20c79c0e874399dcbd15c36dd461b6 100644 (file)
@@ -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);