-
Notifications
You must be signed in to change notification settings - Fork 178
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
more complete input method support (#2053)
* implement input method keyboard grab fixes #1160. * support input method popups * input method: avoid disabling a just-enabled text input on focus change * workaround focus change while preediting * input method: don't grab keyboard if no text input is focused * input method: fix conflicts with compositor shortcut keys We pass all key events to input method after plugins, but don't pass input method generated ones to plugins since we should have already done that. This conflicts with onscreen keyboards, but unfortunately no better way in sight. * input method: address reviews * use at place_popup_at function to convert from relative coordinates to onscreen ones * input method: simplify key handling code * fix style * convert coordinates type * input method: use input_method->active instead of already_disabled_input * move place_popup_at to view-impl * input method: explain the focus change workaround in detail * input method: use pid to identify the input method sent key events because last_keyboard_resource may be invalid when we need to use it. * fix headers * input method: better ways to identify IM sent keys * Revert "input method: use input_method->active instead of already_disabled_input" This reverts commit 1682ced. input_method->active doesn't work for this purpose (see comments) * input method: don't send deactivate command if the input is not the currently focused input * fix code style
- Loading branch information
Showing
9 changed files
with
445 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.