panel: Block autohide when the panel has input focus
The autohide algorithm implicitly assumes that the active window is a foreign window, but it may in fact be the panel itself (at least on X11). This is the case, for example, if the panel has input focus via a plugin's GtkEntry. In this case, the algorithm gives a hazardous result, and may in particular enter an infinite loop in certain circumstances. Blocking autohide if the panel has input focus allows to exit the algorithm as quickly as possible at its various entry points, thus resolving this problem. It also ensures that the panel is not hidden while the user is typically typing text into a GtkEntry. Finally, even if autohide is not used, this ensures that panel opacity is correctly updated, since panel enter/leave opacities follow the same logic as autohide. Fixes: #764
Loading
Please register or sign in to comment