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/gdkdisplay.h | |
parent | 55704fc7c1b5429bf8cc7e8100893b01898a9fe8 (diff) | |
download | gtk+-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.h | 32 |
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__ */ |