summaryrefslogtreecommitdiff
path: root/gdk/gdkdisplay.h
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/gdkdisplay.h
parent55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff)
downloadgtk+-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/gdkdisplay.h')
-rw-r--r--gdk/gdkdisplay.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
index f555517ece..a7f7234924 100644
--- a/gdk/gdkdisplay.h
+++ b/gdk/gdkdisplay.h
@@ -31,6 +31,7 @@
G_BEGIN_DECLS
typedef struct _GdkDisplayClass GdkDisplayClass;
+typedef struct _GdkDisplayPointerHooks GdkDisplayPointerHooks;
#define GDK_TYPE_DISPLAY (gdk_display_get_type ())
#define GDK_DISPLAY_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DISPLAY, GdkDisplay))
@@ -58,6 +59,8 @@ struct _GdkDisplay
guint double_click_time; /* Maximum time between clicks in msecs */
GdkDevice *core_pointer; /* Core pointer device */
+ const GdkDisplayPointerHooks *pointer_hooks; /* Current hooks for querying pointer */
+
guint closed : 1; /* Whether this display has been closed */
};
@@ -77,6 +80,23 @@ struct _GdkDisplayClass
gboolean is_error);
};
+struct _GdkDisplayPointerHooks
+{
+ void (*get_pointer) (GdkDisplay *display,
+ GdkScreen **screen,
+ gint *x,
+ gint *y,
+ GdkModifierType *mask);
+ GdkWindow* (*window_get_pointer) (GdkDisplay *display,
+ GdkWindow *window,
+ gint *x,
+ gint *y,
+ GdkModifierType *mask);
+ GdkWindow* (*window_at_pointer) (GdkDisplay *display,
+ gint *win_x,
+ gint *win_y);
+};
+
GType gdk_display_get_type (void);
GdkDisplay *gdk_display_open (const gchar *display_name);
@@ -114,6 +134,18 @@ GdkDisplay *gdk_display_get_default (void);
GdkDevice *gdk_display_get_core_pointer (GdkDisplay *display);
+void gdk_display_get_pointer (GdkDisplay *display,
+ GdkScreen **screen,
+ gint *x,
+ gint *y,
+ GdkModifierType *mask);
+GdkWindow * gdk_display_get_window_at_pointer (GdkDisplay *display,
+ gint *win_x,
+ gint *win_y);
+
+GdkDisplayPointerHooks *gdk_display_set_pointer_hooks (GdkDisplay *display,
+ const GdkDisplayPointerHooks *new_hooks);
+
G_END_DECLS
#endif /* __GDK_DISPLAY_H__ */