From b58936a6a27161ae5c54ef805b03fc251689a421 Mon Sep 17 00:00:00 2001 From: Markus Gans Date: Sat, 7 Mar 2020 22:38:26 +0100 Subject: [PATCH] Exit the move-resize-mode when the close confirmation dialog is displayed --- ChangeLog | 2 ++ src/fapplication.cpp | 1 + src/fdialog.cpp | 21 +++++++-------------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/ChangeLog b/ChangeLog index 108f15a9..25c46188 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2020-03-07 Markus Gans * Fixes keyboard input buffer problem when opening a modal dialog + * Exit the move-resize-mode when the close confirmation dialog + is displayed 2020-03-05 Markus Gans * Unbuffered reading of keystrokes for better latency diff --git a/src/fapplication.cpp b/src/fapplication.cpp index 6c0cbcb3..41beb190 100644 --- a/src/fapplication.cpp +++ b/src/fapplication.cpp @@ -355,6 +355,7 @@ void FApplication::showParameterUsage() //---------------------------------------------------------------------- void FApplication::closeConfirmationDialog (FWidget* w, FCloseEvent* ev) { + app_object->unsetMoveSizeMode(); const int ret = FMessageBox::info ( w, "Quit" , "Do you really want\n" "to quit the program ?" diff --git a/src/fdialog.cpp b/src/fdialog.cpp index 93e09d51..ed32ebab 100644 --- a/src/fdialog.cpp +++ b/src/fdialog.cpp @@ -1353,63 +1353,56 @@ inline void FDialog::moveSizeKey (FKeyEvent* ev) { case fc::Fkey_up: moveUp(1); - ev->accept(); break; case fc::Fkey_down: moveDown(1); - ev->accept(); break; case fc::Fkey_left: moveLeft(1); - ev->accept(); break; case fc::Fkey_right: moveRight(1); - ev->accept(); break; case fc::Fmkey_up: case fc::Fkey_sr: - if ( reduceHeight(1) ) - ev->accept(); + reduceHeight(1); break; case fc::Fmkey_down: case fc::Fkey_sf: - if ( expandHeight(1) ) - ev->accept(); + expandHeight(1); break; case fc::Fmkey_left: case fc::Fkey_sleft: - if ( reduceWidth(1) ) - ev->accept(); + reduceWidth(1); break; case fc::Fmkey_right: case fc::Fkey_sright: - if ( expandWidth(1) ) - ev->accept(); + expandWidth(1); break; case fc::Fkey_return: case fc::Fkey_enter: acceptMoveSize(); - ev->accept(); break; case fc::Fkey_escape: case fc::Fkey_escape_mintty: cancelMoveSize(); - ev->accept(); return; default: break; } + + // Accept for all, so that parent widgets will not receive keystrokes + ev->accept(); } //----------------------------------------------------------------------