Magnifier cursor no longer pushes contents after a reboot with multiple monitors
Affected version
Running GNOME 43.1 on Ubuntu 22.10 on X11. Mutter is version 43.0. Bug affects both X11 and Wayland.
Also reproduced on: Arch Linux, X11, GNOME 43.4, Mutter 43.4
Bug summary
If you use GNOME's zoom feature with multiple monitors, and have a custom arrangement of the monitors, and have the zoom mode set to "Magnifier cursor pushes contents around," the zoom area stops tracking the mouse some time after a reboot and interacting with the GNOME shell. This is a severe accessibility issue for those, like myself, who need screen zoom but do not benefit as much from screen readers.
Steps to reproduce
- Attach at least two displays to your computer.
- Enable GNOME zoom with Super+Alt+8
- In GNOME, under Settings -> Accessibility -> Seeing -> Zoom, ensure "Magnifier cursor pushes contents around" is selected.
- Set a custom arrangement for your two monitors (e.g, raising one monitor slightly above the other horizontally, as if one monitor's stand is taller than the other).
- Use your computer. Things should behave perfectly.
- Reboot, log back in.
- Zoom into the screen. Try moving the mouse cursor around. If at this point, the zoom area doesn't move, you have reproduced the bug. If not, continue on.
- Bring up the Activities view, and try to move the mouse. If at this point, the zoom area stops moving correctly, you have reproduced the bug. If not, continue on.
- Open any application. Try moving the mouse around. If the zoom area stops moving around correctly, you have reproduced the bug. If not, then you are lucky and I wish I had your computer instead.
What happened
First, when the bug presents itself after a reboot, zooming in and out of the screen reveals that the mouse cursor doesn't appear in the right spot in the workspace. This is usually the first sign I notice that tracking has stopped working. The cursor scales up and down but doesn't move on screen to appear where it would be had I not been zoomed in.
If I'm able to move the zoom area at all for the first few seconds after logging in, I can sometimes observe visual glitches. It's hard to describe them, but they go away as soon as I disable zoom outright with the Super+Alt+8 hotkey.
Usually, after toggling the zoom to clear out the glitching, the zoom area gets stuck in the top left corner of my left-most monitor and I can't move it around. This makes it functionally impossible to use my computer without getting someone with perfect eyesight to reset the zoom area movement mode to its default setting - which resets tracking for the session.
What did you expect to happen
I should be able to reboot my computer or otherwise restart my GNOME session and have my zoom settings work the way I've set them up. I should be able to pan the zoom area by moving my mouse against the edge of a screen that isn't adjacent to another screen, and the mouse should appear in the correct spot as I zoom in and out. There should not be graphical glitching from panning the zoom area either.
Relevant logs, screenshots, screencasts etc.
Although I have not determined if these affect the issue, I have run two gsettings
commands on my system to disable Focus Tracking and Caret Tracking. These settings are not exposed in the UI, but having them on by default makes it harder for me to use the computer since the zoom area likes to jump around as I'm typing or when keyboard focus shifts.
gsettings set 'org.gnome.desktop.a11y.magnifier' 'focus-tracking' none
gsettings set 'org.gnome.desktop.a11y.magnifier' 'caret-tracking' none
I have also had a friend reproduce the bug in a fresh virtual machine running both Ubuntu 22.10 and the Ubuntu 23.04 beta. I don't know the full details of their GNOME install since it's not my computer, but this rules out it being specific to my system or my GPU (NVIDIA RTX 3060ti). Even though he used two virtual monitors in his VMs, he was able to replicate my configuration as closely as possible and was able to reproduce the bug with the same steps I outlined above.