From 48122df00c55d314fe59eb2d5c32dad8455696ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Mon, 26 Jul 2021 16:28:04 +0200 Subject: Don't keep menu open after release unless arrow keys are set I am personally partial to this Mac-like behavior, as it avoids introducing a modality to the user interface, which is almost always annoying. If menus are kept open after button release, then the user is left in a different mode than earlier, in which key presses are not sent to the active window, but to the active menu. This is sometimes useful, but more often than not annoying. --- src/menu.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/menu.c') diff --git a/src/menu.c b/src/menu.c index f65e2c4..997111c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -281,13 +281,15 @@ MenuLoop(Menu *menu) if(event.xbutton.button == Button5) { break; } - if(!hadMotion) { - break; - } - if(abs(event.xbutton.x_root - pressx) < doubleClickDelta) { - if(abs(event.xbutton.y_root - pressy) < doubleClickDelta) { + if(HasArrowKeys()) { + if(!hadMotion) { break; } + if(abs(event.xbutton.x_root - pressx) < doubleClickDelta) { + if(abs(event.xbutton.y_root - pressy) < doubleClickDelta) { + break; + } + } } if(menu->currentIndex >= 0) { -- cgit v1.2.3