Only set cursors on toplevel.

This fixes a problem where we used to set them on a native window, but we
never unset it becase when the pointer moved to another native window
we just set the cursor on that window. Always setting on the toplevel
fixes this.
This commit is contained in:
Alexander Larsson 2009-01-26 12:54:02 +01:00 committed by Alexander Larsson
parent e24c9e291d
commit ca1aeff814

View File

@ -6575,8 +6575,10 @@ update_cursor (GdkDisplay *display)
if (display->pointer_grab.window != NULL &&
!is_parent_of (display->pointer_grab.window, (GdkWindow *)cursor_window))
cursor_window = (GdkWindowObject *)display->pointer_grab.window;
GDK_WINDOW_IMPL_GET_IFACE (pointer_window->impl)->set_cursor ((GdkWindow *)pointer_window,
/* Set all cursors on toplevel, otherwise its tricky to keep track of
* which native window has what cursor set. */
GDK_WINDOW_IMPL_GET_IFACE (pointer_window->impl)->set_cursor (gdk_window_get_toplevel ((GdkWindow *)pointer_window),
cursor_window->cursor);
}