On-screen keyboard disappears after each character entered into the live search entry
Submitted by Philip Withnall
When the live search entry automatically selects the first contact in the view, it shifts focus to the view and away from the search entry. This is fine on a laptop because the view can receive key press events and forward them to the search entry. However, on a touchscreen device, moving the focus away from the search entry makes the on-screen keyboard disappear, which makes it impossible to enter more search characters without clicking on the search entry again.
The offending code is here: https://git.gnome.org/browse/empathy/tree/libempathy-gtk/empathy-roster-view.c#n1459
This could be fixed by only calling select_first_contact() if Empathy is not being run on a touchscreen device. However, I’m not sure of the best way to do this. I think we’d have to remember whether the GdkEvent for the most recent key press in the search entry came from a GDK_SOURCE_TOUCHSCREEN GdkDevice and forward that up from the search entry to the roster view.