After losing focus, the key release of Ctrl+tab isn't delivered to the handler and the MRU window is shown "forever" (or until it's removed by repeated ctrl+tab).
There are 2 situations when focus loss may happen: 1. In the 600ms interval when the MRU popup isn't shown yet but tabs are already being switched. This is handled by checking whether the main window has focus in on_switch_timeout() and the MRU window isn't shown when the focus is lost. 2. After the MRU popup is shown. This is handled by connecting to "focus-out-event" of the main window and stopping the switch in its handler.
Fixes #3330. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/3907
-- Commit Summary --
* Fix stuck MRU dialog when Geany loses focus
-- File Changes --
M src/notebook.c (47)
-- Patch Links --
https://github.com/geany/geany/pull/3907.patch https://github.com/geany/geany/pull/3907.diff