From bf503ea7dd7b0e4e619b940e76c1dcd57cac3cf0 Mon Sep 17 00:00:00 2001 From: Massimo Valentini Date: Sun, 24 Jun 2012 13:23:10 +0200 Subject: [PATCH] app: compress motion events up to the first release event I'm not sure if it'd be better to compress only sequence of contiguous motion events, thinking to the case of anticipating a motion event before a modifier key press/release. --- app/display/gimpdisplayshell-tool-events.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/display/gimpdisplayshell-tool-events.c b/app/display/gimpdisplayshell-tool-events.c index ae46e8b4a6..6b8df80a26 100644 --- a/app/display/gimpdisplayshell-tool-events.c +++ b/app/display/gimpdisplayshell-tool-events.c @@ -944,6 +944,9 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas, } } + if (compressed_motion) + gdk_event_free (compressed_motion); + return_val = TRUE; } break; @@ -1794,6 +1797,17 @@ gimp_display_shell_compress_motion (GimpDisplayShell *shell) last_motion = event; } + else if ((gtk_get_event_widget (event) == shell->canvas) && + (event->any.type == GDK_BUTTON_RELEASE)) + { + requeued_events = g_list_prepend (requeued_events, event); + + while (gdk_events_pending ()) + if ((event = gdk_event_get ())) + requeued_events = g_list_prepend (requeued_events, event); + + break; + } else { requeued_events = g_list_prepend (requeued_events, event);