From 65d4edbd5bacefee551b5bf85116dc700552ff9b Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Sat, 20 Nov 2010 22:11:54 +0100 Subject: [PATCH] [broadway] Send event timestamps from client --- gdk/broadway/broadway.js | 6 +++--- gdk/broadway/gdkdisplay-broadway.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gdk/broadway/broadway.js b/gdk/broadway/broadway.js index 21561bb57b..c3d4d80540 100644 --- a/gdk/broadway/broadway.js +++ b/gdk/broadway/broadway.js @@ -298,19 +298,19 @@ function handleLoad(event) function on_mouse_move (ev) { if (input_socket != null) { - input_socket.send("m" + ev.pageX + "," + ev.pageY); + input_socket.send("m" + ev.pageX + "," + ev.pageY + "," + ev.timeStamp); } } function on_mouse_down (ev) { if (input_socket != null) { - input_socket.send("b" + ev.pageX + "," + ev.pageY + "," + ev.button); + input_socket.send("b" + ev.pageX + "," + ev.pageY + "," + ev.button + "," + ev.timeStamp); } } function on_mouse_up (ev) { if (input_socket != null) { - input_socket.send("B" + ev.pageX + "," + ev.pageY + "," + ev.button); + input_socket.send("B" + ev.pageX + "," + ev.pageY + "," + ev.button + "," + ev.timeStamp); } } diff --git a/gdk/broadway/gdkdisplay-broadway.c b/gdk/broadway/gdkdisplay-broadway.c index c3f0fa0a24..d4fc91c57f 100644 --- a/gdk/broadway/gdkdisplay-broadway.c +++ b/gdk/broadway/gdkdisplay-broadway.c @@ -181,6 +181,7 @@ got_input (GInputStream *stream, gsize len; GError *error = NULL; int x, y, button; + guint64 time; GdkEvent *event = NULL; char cmd; GList *node; @@ -205,6 +206,8 @@ got_input (GInputStream *stream, x = strtol(p, &p, 10); p++; /* Skip , */ y = strtol(p, &p, 10); + p++; /* Skip , */ + time = strtol(p, &p, 10); window = _gdk_window_find_child_at (root, x, y); @@ -242,7 +245,7 @@ got_input (GInputStream *stream, { event = gdk_event_new (GDK_ENTER_NOTIFY); event->crossing.window = g_object_ref (window); - event->crossing.time = g_get_monotonic_time () / 1000; + event->crossing.time = time; event->crossing.x = x - GDK_WINDOW_OBJECT (window)->x; event->crossing.y = y - GDK_WINDOW_OBJECT (window)->y; event->crossing.x_root = x; @@ -269,7 +272,7 @@ got_input (GInputStream *stream, { event = gdk_event_new (GDK_MOTION_NOTIFY); event->motion.window = g_object_ref (window); - event->motion.time = g_get_monotonic_time () / 1000; + event->motion.time = time; event->motion.x = x - GDK_WINDOW_OBJECT (window)->x; event->motion.y = y - GDK_WINDOW_OBJECT (window)->y; event->motion.x_root = x; @@ -288,6 +291,8 @@ got_input (GInputStream *stream, y = strtol(p, &p, 10); p++; /* Skip , */ button = strtol(p, &p, 10); + p++; /* Skip , */ + time = strtol(p, &p, 10); window = _gdk_window_find_child_at (root, x, y); @@ -295,7 +300,7 @@ got_input (GInputStream *stream, { event = gdk_event_new (cmd == 'b' ? GDK_BUTTON_PRESS : GDK_BUTTON_RELEASE); event->button.window = g_object_ref (window); - event->button.time = g_get_monotonic_time () / 1000; + event->button.time = time; event->button.x = x - GDK_WINDOW_OBJECT (window)->x; event->button.y = y - GDK_WINDOW_OBJECT (window)->y; event->button.x_root = x;