Ignore key down repeat events in inspector window

Ignore key press events that happen when a key is held down.
This commit is contained in:
Lawrence Lee 2021-05-02 12:52:15 -07:00
parent 4811f92c39
commit de9403f9fe
2 changed files with 12 additions and 1 deletions

View File

@ -83,7 +83,7 @@ InspectorBuffer::~InspectorBuffer() {
// return deg; // 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"); set_name("Inspector");
@ -152,6 +152,8 @@ void Inspector::hideWindow()
bool Inspector::on_key_release(GdkEventKey *event) bool Inspector::on_key_release(GdkEventKey *event)
{ {
keyDown = false;
if (!window) if (!window)
return false; return false;
@ -172,6 +174,12 @@ bool Inspector::on_key_press(GdkEventKey *event)
if (!window) if (!window)
return false; return false;
if (keyDown) {
return true;
}
keyDown = true;
switch (event->keyval) { switch (event->keyval) {
case GDK_KEY_z: case GDK_KEY_z:
case GDK_KEY_F: case GDK_KEY_F:
@ -203,6 +211,8 @@ bool Inspector::on_key_press(GdkEventKey *event)
return true; return true;
} }
keyDown = false;
return false; return false;
} }

View File

@ -55,6 +55,7 @@ private:
bool dirty; bool dirty;
bool initialized; bool initialized;
bool fullscreen; // window is shown in fullscreen mode bool fullscreen; // window is shown in fullscreen mode
bool keyDown;
sigc::connection delayconn; sigc::connection delayconn;
Glib::ustring next_image_path; Glib::ustring next_image_path;