summaryrefslogtreecommitdiff
path: root/gdk/linux-fb
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-10-07 19:42:49 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-10-07 19:42:49 +0000
commit253458ec525ac1d1ed45ce47a79365df7905e01f (patch)
tree3712ec56f7242c2d56b4c8dfbdb03e9aff4ff8df /gdk/linux-fb
parent55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff)
downloadgdk-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.c40
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;