diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-10-07 19:42:49 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-10-07 19:42:49 +0000 |
commit | 253458ec525ac1d1ed45ce47a79365df7905e01f (patch) | |
tree | 3712ec56f7242c2d56b4c8dfbdb03e9aff4ff8df /gdk/linux-fb | |
parent | 55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff) | |
download | gdk-pixbuf-253458ec525ac1d1ed45ce47a79365df7905e01f.tar.gz |
- 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.
Diffstat (limited to 'gdk/linux-fb')
-rw-r--r-- | gdk/linux-fb/gdkwindow-fb.c | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/gdk/linux-fb/gdkwindow-fb.c b/gdk/linux-fb/gdkwindow-fb.c index eab26faca..bbb3a7adc 100644 --- a/gdk/linux-fb/gdkwindow-fb.c +++ b/gdk/linux-fb/gdkwindow-fb.c @@ -1631,26 +1631,18 @@ _gdk_windowing_window_get_pointer (GdkWindow *window, int winy = 0; int x_int, y_int; gint shape_dx, shape_dy; - GdkModifierType my_mask; GdkRegion *shape; g_return_val_if_fail (window == NULL || GDK_IS_WINDOW (window), NULL); - if (!window) - window = _gdk_parent_root; - gdk_window_get_root_origin (window, &x_int, &y_int); - gdk_fb_mouse_get_info (&winx, &winy, &my_mask); + gdk_fb_mouse_get_info (&winx, &winy, mask); winx -= x_int; winy -= y_int; - if (x) - *x = winx; - if (y) - *y = winy; - if (mask) - *mask = my_mask; + *x = winx; + *y = winy; return_val = NULL; @@ -1704,10 +1696,24 @@ _gdk_windowing_window_get_pointer (GdkWindow *window, return return_val; } +void +_gdk_windowing_get_pointer (GdkDisplay *display, + GdkScreen **screen, + gint *x, + gint *y, + GdkModifierType *mask) +{ + GdkScreen *default_screen = gdk_display_get_default_screen (display); + GdkWindow *root_window = gdk_screen_get_root_window (screen); + + *screen = default_screen; + _gdk_windowing_window_get_pointer (root_window, x, y, mask); +} + GdkWindow* -_gdk_windowing_window_at_pointer (GdkScreen *screen, - gint *win_x, - gint *win_y) +_gdk_windowing_window_at_pointer (GdkDisplay *display, + gint *win_x, + gint *win_y) { gint rx, ry; GdkWindow *retval = gdk_window_get_pointer (NULL, win_x, win_y, NULL); @@ -1715,10 +1721,8 @@ _gdk_windowing_window_at_pointer (GdkScreen *screen, if (retval) { gdk_window_get_origin (retval, &ry, &rx); - if (win_x) - (*win_x) -= rx; - if (win_y) - (*win_y) -= ry; + (*win_x) -= rx; + (*win_y) -= ry; } return retval; |