Main.keyboard._seat.touch_mode is incorrect
Affected version
gnome-shell 3.36.4 (also 3.38, but in a different way - see gnome-shell#3255)
Ubuntu 20.04
XOrg and Wayland (But it's worse on XOrg)
Bug summary
I just bought a convertible and took this opportunity to switch from Plasma to Gnome. I was really hyped that everything ran out of the box, HiDPI was discovered, my touch screen was discovered and an OSK was shown whenever I used my touch screen to select an input while it didn't when I used my trackpoint.
Then I discovered that I accidentally downloaded Ubuntu 20.04 and not 20.10 and upgraded. Due to Gnome 3.38, I ran into gnome-shell#3255 and spent the day downgrading to 20.04 again, as gnome-shell#3255 made the tablet mode kind of unusable to me. Ubuntu then notified me about some "harmless" package upgrades, which I then installed. Since then, the OSK touch mode is not set correct any more.
Turns out that the gnome-shell was upgraded from 3.36.3 to 3.36.4. I can't downgrade, as the 3.36.3 package is not in the repos any more, so I'm stuck with manually activating and deactivating the OSK from the accessibility menu. This way, my convertible is not unusable or something (as at least the screen rotation works), but I'm much less hyped about it and about showing my friends how great it works with Ubuntu/Gnome as I was the days before.
Steps to reproduce
- Own a convertible (Lenovo Thinkpad Yoga X1 3rd gen in my case)
- Make sure Gnome 3.36.4 is installed
- Log into a Xorg session
- Touch some text inputs, try to open the OSK with a swipe from the bottom screen edge
- Type into a Terminal (with your physical keyboard, as your OSK won't appear):
gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
'imports.gi.Clutter.get_default_backend().get_default_seat().touch_mode'
- See it always returns
(true, 'false')
, no matter if you have your laptop open or in tablet mode - Do the same thing on Wayland
- See it always returns
(true, 'true')
, no matter if you have your laptop open or in tablet mode
What happened
The Main.keyboard._seat.touch_mode
is always true
on Wayland and always false
on X11, and the behaviour of the shell reflects that: On-Screen keyboard never shows up using X11, and always shows up touching an input under Wayland.
What did you expect to happen
Using Gnome 3.36.3 and X11 (after a fresh Ubuntu 20.04 installation), the OSK automatically shows up touching an input and can always be enabled using a swipe from the bottom in X11 (I suspect Main.keyboard._seat.touch_mode
to always be true
under this condition). Under Wayland, it's even that intelligent to never show the OSK as long as the physical one is available, but shows the OSK after touching an input when the device is in tablet mode (I suspect Gnome 3.36.3 Wayland to automatically change Main.keyboard._seat.touch_mode
accordingly).
I expect the same behaviour from all Gnome versions newer than 3.36.3, or even better, the Wayland behaviour from 3.36.3 also in X11.