summaryrefslogtreecommitdiff
path: root/gdk/gdkdisplay.h
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2008-07-18 15:03:42 +0200
committerAlexander Larsson <alex@localhost.localdomain>2009-04-02 10:14:01 +0200
commiteabac453e652d5aa2e535d957057f9c84803eea9 (patch)
tree963368271158f24a17f58f67bfdd8b0bedbb2c07 /gdk/gdkdisplay.h
parente2a2ba9d9889ba96059bc1c2c141088a1baeecd3 (diff)
downloadgtk+-eabac453e652d5aa2e535d957057f9c84803eea9.tar.gz
Initial client-side-windows work
The history before this was kind of twisted as several different approaches were tested, so that was all squashed into this initial commit to hide the uninteresting changes and files that were later removed.
Diffstat (limited to 'gdk/gdkdisplay.h')
-rw-r--r--gdk/gdkdisplay.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/gdk/gdkdisplay.h b/gdk/gdkdisplay.h
index 04bf1831bb..790bc0b7f3 100644
--- a/gdk/gdkdisplay.h
+++ b/gdk/gdkdisplay.h
@@ -43,6 +43,32 @@ typedef struct _GdkDisplayPointerHooks GdkDisplayPointerHooks;
#define GDK_IS_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_DISPLAY))
#define GDK_DISPLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_DISPLAY, GdkDisplayClass))
+/* Tracks information about the pointer grab on this display */
+typedef struct
+{
+ GdkWindow *window;
+ GdkWindow *native_window;
+ gulong serial;
+ gboolean owner_events;
+ guint event_mask;
+ gboolean implicit;
+ gboolean converted_implicit;
+ guint32 time;
+
+ GdkWindow *grab_one_pointer_release_event;
+} GdkPointerGrabInfo;
+
+/* Tracks information about which window the pointer is in and
+ * at what position the mouse is. This is useful when we need
+ * to synthesize events later.
+ */
+typedef struct
+{
+ GdkWindow *window_under_pointer;
+ gdouble toplevel_x, toplevel_y;
+ guint32 state;
+} GdkPointerWindowInfo;
+
struct _GdkDisplay
{
GObject parent_instance;
@@ -68,6 +94,9 @@ struct _GdkDisplay
guint double_click_distance; /* Maximum distance between clicks in pixels */
gint button_x[2]; /* The last 2 button click positions. */
gint button_y[2];
+
+ GdkPointerGrabInfo pointer_grab;
+ GdkPointerWindowInfo pointer_info;
};
struct _GdkDisplayClass