bpo-15786: IDLE: Fix mouse clicks on autocompletetion window (#1811)
The root problem was non-check for hide_event. When user clicks on autocomplete window (acw), root widget gets focusOut event, then triggers hide_window to close the acw. It should only be hide when acw is active, and acw didn't get focus at FocusOut event (this event bind on acw and widget), or when widget get a ButtonPress event (this event only bind on widget). MacOS froze after double click on acw because when doubleclick_event try to hide window at the end, hide_window function destory whole acw, but tkinter didn't get focus back to widget. So set focus on widget first, then destory acw. Windows could not respond on double click event, because of the misbehavior of Configure event. When acw was shown, tkinter called winconfig event multiple times. That caused tkinter to not response to double click event. When on Windows, unbind Configure event first time get into winconfig_event to prevent multiple call of this event.
Showing
Please register or sign in to comment