- Replace GdkPointerHooks with a multihead-safe GdkDisplayPointerHooks,
Mon Oct 7 15:10:00 2002 Owen Taylor <otaylor@redhat.com> * gdk/gdkdisplay.[ch] gdk/gdkinternals.h gdk/gdkwindow.[ch] gdk/linux-fb/gdkwindow-fb.c gdk/win32/gdkwindow-win32.c gdk/x11/gdkwindow-x11.c: - Replace GdkPointerHooks with a multihead-safe GdkDisplayPointerHooks, leave GdkPointerHooks around for singlehead. - Add gdk_display_get_pointer() to get the pointer location with the screen it is on. * gdk/gdk.def gdk/gdkdisplay.[ch] gdk/gdkscreen.[ch]: Change gdk_screen_get_window_at_pointer() to gdk_display_get_window_at_pointer(). * gtk/gtktreeview.c demos/gtk-demo/changedisplay.c tests/testgtk.c: Use gdk_display_get_window_at_pointer(), not gdk_screen_get_window_at_pointer(). * gtk/gtkcolorsel.c: Fix grabbing color to be multihead safe. * gtk/gtkwidget.c: Allow gtk_widget_push_colormap (NULL). since it is useful for writing code that doesn't know the dcurrent state but needs a clean colormap. * gtk/gtkrc.c: When loading the settings for a particular screen, only reset toplevels on that screen. * gtk/gtkiconfactory.h: Fix #ifdef GTK_MULTIHEAD_SAFE that should have been #ifndef GTK_MULTIHEAD_SAFE.
This commit is contained in:
@ -70,12 +70,12 @@ enum
|
||||
/* Finds the toplevel window under the mouse pointer, if any.
|
||||
*/
|
||||
static GtkWidget *
|
||||
find_toplevel_at_pointer (GdkScreen *screen)
|
||||
find_toplevel_at_pointer (GdkDisplay *display)
|
||||
{
|
||||
GdkWindow *pointer_window;
|
||||
GtkWidget *widget = NULL;
|
||||
|
||||
pointer_window = gdk_screen_get_window_at_pointer (screen, NULL, NULL);
|
||||
pointer_window = gdk_display_get_window_at_pointer (display, NULL, NULL);
|
||||
|
||||
/* The user data field of a GdkWindow is used to store a pointer
|
||||
* to the widget that created it.
|
||||
@ -142,7 +142,7 @@ query_for_toplevel (GdkScreen *screen,
|
||||
while (!clicked)
|
||||
g_main_context_iteration (NULL, TRUE);
|
||||
|
||||
toplevel = find_toplevel_at_pointer (screen);
|
||||
toplevel = find_toplevel_at_pointer (gdk_screen_get_display (screen));
|
||||
if (toplevel == popup)
|
||||
toplevel = NULL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user