Bug: gnome 51 mouse not following focus

Open Beginner friendly
#593 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
75/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript

Research direction

Read lib/extension/window.js, especially warpPointerToNodeWindow, and check how it obtains the default seat under GNOME Shell 51. The issue includes a proposed change from Clutter.get_default_backend() to global.stage.context.get_backend() and logs showing the current call fails. Verify the pointer follows focus on GNOME Shell 51 and that the existing behavior still works on supported versions.

Written by the indexing model from the issue text.

Description

bug
Issue/Bug Description/Video Capture/Screenshots

Hello,

Since gnome 51 (on fedora 45) the mouse does not follow the focus anymore.
This fixes it.

--- a/lib/extension/window.js
+++ b/lib/extension/window.js
@@ -1891,7 +1891,8 @@ export class WindowManager extends GObject.Object {
   warpPointerToNodeWindow(nodeWindow) {
     const newCoord = this.getPointerPositionInside(nodeWindow);
     if (newCoord && newCoord.x && newCoord.y) {
-      const seat = Clutter.get_default_backend().get_default_seat();
+      const backend = global.stage.context.get_backend();
+      const seat = backend.get_default_seat();
       if (seat) {
         const wmTitle = nodeWindow.nodeValue.get_title();
         Logger.debug(`moved pointer to [${wmTitle}] at (${newCoord.x},${newCoord.y})`);
Steps to reproduce

No response

Distribution and Linux version
NAME="Fedora Linux"
VERSION="45 (Workstation Edition)"
RELEASE_TYPE=stable
ID=fedora
VERSION_ID=45
VERSION_CODENAME=""
PRETTY_NAME="Fedora Linux 45 (Workstation Edition)"
ANSI_COLOR="0;38;2;60;110;180"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:45"
DEFAULT_HOSTNAME="fedora"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f45/"
SUPPORT_URL="https://ask.fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=45
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=45
SUPPORT_END=2027-12-08
VARIANT="Workstation Edition"
VARIANT_ID=workstation
Linux zephyrusg14 7.3.3-1.cachyos1.fc45.x86_64 #1 SMP PREEMPT_DYNAMIC Sun Nov  8 17:32:56 UTC 2026 x86_64 GNU/Linux
Journal Logs from the last hour
nov. 09 20:23:02 zephyrusg14 gnome-shell[87805]: meta_window_set_stack_position_no_sync: assertion 'window->stack_position >= 0' failed
nov. 09 20:30:21 zephyrusg14 gnome-shell[87805]: JS ERROR: TypeError: (intermediate value).get_default_backend is not a function
                                                 warpPointerToNodeWindow@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1897:28
                                                 movePointerWith@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1887:14
                                                 focus@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/tree.js:851:20
                                                 command@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:542:37
                                                 buildBindingDefinitions/window-focus-left/<@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:212:22
                                                 window-focus-left@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:211:17
                                                 @resource:///org/gnome/shell/ui/init.js:20:20
nov. 09 20:30:21 zephyrusg14 gnome-shell[87805]: JS ERROR: TypeError: (intermediate value).get_default_backend is not a function
                                                 warpPointerToNodeWindow@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1897:28
                                                 movePointerWith@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1887:14
                                                 focus@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/tree.js:851:20
                                                 command@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:542:37
                                                 buildBindingDefinitions/window-focus-right/<@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:245:22
                                                 window-focus-right@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:244:17
                                                 @resource:///org/gnome/shell/ui/init.js:20:20
nov. 09 20:30:21 zephyrusg14 gnome-shell[87805]: JS ERROR: TypeError: (intermediate value).get_default_backend is not a function
                                                 warpPointerToNodeWindow@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1897:28
                                                 movePointerWith@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:1887:14
                                                 focus@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/tree.js:851:20
                                                 command@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/window.js:542:37
                                                 buildBindingDefinitions/window-focus-left/<@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:212:22
                                                 window-focus-left@file:///usr/share/gnome-shell/extensions/[email protected]/lib/extension/keybindings.js:211:17
                                                 @resource:///org/gnome/shell/ui/init.js:20:20
GNOME Shell version

GNOME Shell 51.1

Forge version

a458e308b59254ae6e5208ac751be7dbb8ba349b

Other installed/enabled extensions
blur-my-shell@aunetx
  Nom: Blur my Shell
  Description: Adds a blur look to different parts of GNOME Shell, including the top panel, dash and overview.

Note: if the extension shows an error after updating, restart your session to see whether it persists. This is due to a GNOME Shell bug that the extension cannot work around.
  Chemin: /home/vcarbona/.local/share/gnome-shell/extensions/blur-my-shell@aunetx
  URL: https://github.com/aunetx/blur-my-shell
  Version: 77
  Activé: Oui
  État: ACTIVE

[email protected]
  Nom: GPU Supergfxctl Switch
  Description: Simple GPU Profile switcher Gnome-Shell-Extension for ASUS laptops using Supergfxctl
  Chemin: /home/vcarbona/.local/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/chikobara/GPU-Switcher-Supergfxctl
  Version: 17
  Activé: Oui
  État: ACTIVE

[email protected]
  Nom: AppIndicator and KStatusNotifierItem Support
  Description: Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell
  Chemin: /usr/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/ubuntu/gnome-shell-extension-appindicator
  Activé: Oui
  État: ACTIVE

[email protected]
  Nom: Forge
  Description: Tiling and window manager for GNOME
- Please report bugs/issues on https://github.com/forge-ext/forge/issues
- Needs a new maintainer.
  Chemin: /usr/share/gnome-shell/extensions/[email protected]
  URL: https://github.com/forge-ext/forge
  Activé: Oui
  État: ACTIVE
Monitor Setup

1x 4k horizontal

Other Notes

No response

Dominant language
JavaScript
Stars
1.3k
Forks
112
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from forge-ext/forge

All issues in forge-ext/forge

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.