From de9403f9fe27c9d36cb48cbac4663952301e581c Mon Sep 17 00:00:00 2001 From: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com> Date: Sun, 2 May 2021 12:52:15 -0700 Subject: [PATCH] Ignore key down repeat events in inspector window Ignore key press events that happen when a key is held down. --- rtgui/inspector.cc | 12 +++++++++++- rtgui/inspector.h | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/rtgui/inspector.cc b/rtgui/inspector.cc index 59378b9d2..e0da8378e 100644 --- a/rtgui/inspector.cc +++ b/rtgui/inspector.cc @@ -83,7 +83,7 @@ InspectorBuffer::~InspectorBuffer() { // return deg; //} -Inspector::Inspector () : currImage(nullptr), scaled(false), scale(1.0), zoomScale(1.0), zoomScaleBegin(1.0), active(false), pinned(false), dirty(false) +Inspector::Inspector () : currImage(nullptr), scaled(false), scale(1.0), zoomScale(1.0), zoomScaleBegin(1.0), active(false), pinned(false), dirty(false), keyDown(false) { set_name("Inspector"); @@ -152,6 +152,8 @@ void Inspector::hideWindow() bool Inspector::on_key_release(GdkEventKey *event) { + keyDown = false; + if (!window) return false; @@ -172,6 +174,12 @@ bool Inspector::on_key_press(GdkEventKey *event) if (!window) return false; + if (keyDown) { + return true; + } + + keyDown = true; + switch (event->keyval) { case GDK_KEY_z: case GDK_KEY_F: @@ -203,6 +211,8 @@ bool Inspector::on_key_press(GdkEventKey *event) return true; } + keyDown = false; + return false; } diff --git a/rtgui/inspector.h b/rtgui/inspector.h index b17d199bf..4d5e5e835 100644 --- a/rtgui/inspector.h +++ b/rtgui/inspector.h @@ -55,6 +55,7 @@ private: bool dirty; bool initialized; bool fullscreen; // window is shown in fullscreen mode + bool keyDown; sigc::connection delayconn; Glib::ustring next_image_path;