Blob Blame History Raw
diff -up gtk+-2.17.6/gdk/gdkwindow.c.set-cursor gtk+-2.17.6/gdk/gdkwindow.c
--- gtk+-2.17.6/gdk/gdkwindow.c.set-cursor	2009-08-11 14:26:41.041772299 -0400
+++ gtk+-2.17.6/gdk/gdkwindow.c	2009-08-11 14:27:40.703522466 -0400
@@ -6982,7 +6982,10 @@ gdk_window_set_cursor (GdkWindow *window
       if (cursor)
 	private->cursor = gdk_cursor_ref (cursor);
 
-      if (_gdk_window_event_parent_of (window, display->pointer_info.window_under_pointer))
+      if (private->window_type == GDK_WINDOW_ROOT ||
+          private->window_type == GDK_WINDOW_FOREIGN)
+        GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_cursor (window, cursor);
+      else if (_gdk_window_event_parent_of (window, display->pointer_info.window_under_pointer))
 	update_cursor (display);
     }
 }