OSK on X11 often does not register button presses
On X11 when using the OSK such that the OSK is shown on top of the focused window, i.e. when the cursor position is not close enough to the bottom for it to shift the window up, clicking the buttons is registered as a click in the window rather than entering that key.
This is due to the KeyboardBox
being placed at (0, display_height)
and the Keyboard
being shown via an ease to translation_y: -this.height
. Because translations don't trigger an allocation change, none of the handlers registered for the actor in LayoutManager::_trackActor()
get triggered and the corresponding input region remains at (0, display_height)
, resulting in this issue.
Running _queueUpdateRegions()
on notify::translation-y
seems to fix the issue, but a proper solution should be more generic and catch other transforms that are not just y translations. I haven't figured out the best way to do that yet.
Another option would be to allocate it at the correct position, set the initial translation_y
to the height and then ease that to 0.