Public bug reported:

On a Wayland session at scale 1.0, the mouse cursor becomes about 1.75x
larger (≈3x the area) only while hovering the monitor arrangement area in
Settings > Displays (CcDisplayArrangement). It returns to normal size as
soon as the pointer leaves that widget.

ENVIRONMENT
- Ubuntu 26.04, GNOME Shell 50.1, Wayland session
- libgtk-4-1 4.22.4+ds-0ubuntu0.1
- mutter-common 50.1-0ubuntu2.4
- gnome-control-center 1:50.3-0ubuntu0.2
- yaru-theme-icon 26.04.5.1ubuntu (cursor theme: Yaru)
- Single 1080p monitor, scale 1.0, no fractional scaling
  (org.gnome.mutter experimental-features empty), cursor-size 24
- XCURSOR_SIZE not set, no gtk-cursor-theme-size in settings.ini

STEPS TO REPRODUCE
1. Wayland session, scale 100%, cursor size 24
2. Run: gnome-control-center display
3. Hover the monitor rectangle(s) in the arrangement area

EXPECTED: 24 px cursor
ACTUAL: cursor displayed at 42x42 logical pixels

ANALYSIS
- GTK Inspector shows the widget sets a GdkCursor with name "fleur"
  (legacy X11 name). A new GdkCursor object is created on every motion.
- "fleur" has no wp_cursor_shape_v1 equivalent, so GTK falls back to a
  client-side cursor surface instead of set_shape.
- WAYLAND_DEBUG=1 shows, on every pointer motion:

  wl_shm_pool.create_buffer(new id wl_buffer, 0, 32, 32, 128, 0)
  wl_surface#43.attach(wl_buffer, 0, 0)
  wp_viewport#44.set_source(0, 0, 32, 32)
  wp_viewport#44.set_destination(42, 42)
  wl_surface#43.damage(0, 0, 42, 42)
  wl_surface#43.commit()
  wl_pointer#40.set_cursor(serial, wl_surface#43, 5, 5)

- The compositor reports scale 1.0 everywhere: wl_output.scale(1) on all
  outputs and wp_fractional_scale_v1.preferred_scale(120) for both the
  toplevel and the cursor surface. The 42x42 destination is still sent
  after preferred_scale(120) was received.
- 42 = 24 x 1.75: GTK computes the cursor size with a scale that does not
  match the compositor. The Yaru "fleur" cursor provides nominal sizes
  24/32/48/64/96, yet a 32x32 image is used.
- Cursors mapped to cursor-shape (e.g. "default") are drawn by Mutter at
  the correct 24 px. MUTTER_DEBUG_DISABLE_HW_CURSORS=1 makes no difference.

LIKELY CAUSES
1. GTK (gdk/wayland): wrong size/viewport computation in the fallback
   (non cursor-shape) cursor path.
2. gnome-control-center: uses the legacy name "fleur" instead of the
   standard CSS name "move", which forces the fallback path; the cursor
   is also recreated on every motion event, so a new SHM buffer is
   allocated each time.

ProblemType: Bug
DistroRelease: Ubuntu 26.04
Package: libgtk-4-1 4.22.4+ds-0ubuntu0.1
ProcVersionSignature: Ubuntu 7.0.0-34.34-generic 7.0.14
Uname: Linux 7.0.0-34-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: ubuntu:GNOME
Date: Mon Sep 28 15:20:22 2026
InstallationDate: Installed on 2023-10-02 (1092 days ago)
InstallationMedia: Ubuntu 22.04.3 LTS "Jammy Jellyfish" - Release amd64 
(20230807.2)
ProcEnviron:
 LANG=fr_FR.UTF-8
 PATH=(custom, no user)
 SHELL=/usr/bin/zsh
 TERM=xterm-256color
 XDG_RUNTIME_DIR=<set>
SourcePackage: gtk4
UpgradeStatus: No upgrade log present (probably fresh install)

** Affects: gtk4 (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug gnome-control-center resolute wayland-session

** Attachment added: "View of gnome-control-center with bug"
   https://bugs.launchpad.net/bugs/2168756/+attachment/6003426/+files/Bug.png

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2168756

Title:
  Wayland: cursor shown 1.75x too large over display arrangement in
  Settings (fallback cursor gets 42x42 viewport at scale 1.0)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gtk4/+bug/2168756/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to