Skip to content

Change InputMethod::show() and InputMethod::hide() to not change active state.

Xuetian Weng requested to merge work/hide-not-deactivate into master

Qt usually requests InputMethod::hide() upon focus out, but InputMethod::show() is actually never called if the focus change is triggered by keyboard, which leads to a permanent disabled input method state.

It can be easily reproduced with a window with two text field, e.g. QFileDialog, by pressing tab to switch the focused widget.

The semantics of hide/show should not deactivate the input method. Instead, it should simply hide/show the input panel. Also it should not be a hard request for input method to permanently hide the window. When input method asked to show it again, the input panel window should be shown.

Merge request reports