From a3024815a02cec26f40b6ca17b38039bc659f3b7 Mon Sep 17 00:00:00 2001 From: Mia Herkt Date: Mon, 18 Jan 2021 14:10:03 +0100 Subject: [PATCH] Properly skip events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit So the mouse doesn’t get trapped because the button release event is swallowed up. --- src/audio_display.cpp | 5 ++++- src/visual_tool.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/audio_display.cpp b/src/audio_display.cpp index 9713c5add..865284a0b 100644 --- a/src/audio_display.cpp +++ b/src/audio_display.cpp @@ -1049,7 +1049,10 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event) // very expensive, and aegisub’s work queue handling is bad, // so limit mouse event rate to ~200 Hz long ts = event.GetTimestamp(); - if ((ts - last_event) < 5) return; + if (!event.IsButton() && (ts - last_event) < 5) { + event.Skip(); + return; + } last_event = ts; // If we have focus, we get mouse move events on Mac even when the mouse is diff --git a/src/visual_tool.cpp b/src/visual_tool.cpp index e27a3c2b1..0aa1b8e2f 100644 --- a/src/visual_tool.cpp +++ b/src/visual_tool.cpp @@ -174,7 +174,10 @@ void VisualTool::OnMouseEvent(wxMouseEvent &event) { // very expensive, and aegisub’s work queue handling is bad, // so limit mouse event rate to ~200 Hz long ts = event.GetTimestamp(); - if ((ts - lastEvent) < 5) return; + if (!event.IsButton() && (ts - lastEvent) < 5) { + event.Skip(); + return; + } lastEvent = ts; bool left_click = event.LeftDown();