- 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:
@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user