summaryrefslogtreecommitdiff
path: root/gdk/broadway/gdkeventsource.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2011-03-14 12:09:19 +0100
committerAlexander Larsson <alexl@redhat.com>2011-03-14 12:09:19 +0100
commita1de735b8792afa89baf83e0f8570fc9e6ad92c9 (patch)
tree4d172446358a2eb919aa2da41b93f77e3bf5a2ec /gdk/broadway/gdkeventsource.c
parente53abee8054da90c887e0f265de7048321277a1e (diff)
downloadgtk+-a1de735b8792afa89baf83e0f8570fc9e6ad92c9.tar.gz
broadway: Track button state
Diffstat (limited to 'gdk/broadway/gdkeventsource.c')
-rw-r--r--gdk/broadway/gdkeventsource.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdk/broadway/gdkeventsource.c b/gdk/broadway/gdkeventsource.c
index 26e23c7441..923c1171a6 100644
--- a/gdk/broadway/gdkeventsource.c
+++ b/gdk/broadway/gdkeventsource.c
@@ -94,6 +94,7 @@ typedef struct {
int root_y;
int win_x;
int win_y;
+ guint32 state;
guint64 time;
} PointerData;
@@ -110,6 +111,8 @@ parse_pointer_data (char *p, PointerData *data)
p++; /* Skip , */
data->win_y = strtol (p, &p, 10);
p++; /* Skip , */
+ data->state = strtol (p, &p, 10);
+ p++; /* Skip , */
data->time = strtol(p, &p, 10);
return p;
@@ -162,6 +165,7 @@ _gdk_broadway_events_got_input (GdkDisplay *display,
event->crossing.y = data.win_y;
event->crossing.x_root = data.root_x;
event->crossing.y_root = data.root_y;
+ event->crossing.state = data.state;
event->crossing.mode = detail;
event->crossing.detail = GDK_NOTIFY_ANCESTOR;
gdk_event_set_device (event, display->core_pointer);
@@ -199,6 +203,7 @@ _gdk_broadway_events_got_input (GdkDisplay *display,
event->crossing.y = data.win_y;
event->crossing.x_root = data.root_x;
event->crossing.y_root = data.root_y;
+ event->crossing.state = data.state;
event->crossing.mode = GDK_CROSSING_NORMAL;
event->crossing.detail = detail;
gdk_event_set_device (event, display->core_pointer);
@@ -232,6 +237,7 @@ _gdk_broadway_events_got_input (GdkDisplay *display,
event->motion.y = data.win_y;
event->motion.x_root = data.root_x;
event->motion.y_root = data.root_y;
+ event->motion.state = data.state;
gdk_event_set_device (event, display->core_pointer);
node = _gdk_event_queue_append (display, event);
@@ -259,6 +265,7 @@ _gdk_broadway_events_got_input (GdkDisplay *display,
event->button.x_root = data.root_x;
event->button.y_root = data.root_y;
event->button.button = button + 1;
+ event->button.state = data.state;
gdk_event_set_device (event, display->core_pointer);
node = _gdk_event_queue_append (display, event);