Public bug reported:

Ubuntu Dock flickers rapidly when revealing the auto-hidden dock over a
maximized, focused Chrome window while Hide Top Bar hides the panel. A
local patch to Ubuntu Dock v105 fixes the problem here.

Environment:
- Ubuntu 26.04.1, Wayland session
- gnome-shell-ubuntu-extensions 50.26.04.8ubuntu (Ubuntu Dock v105, 
[email protected])
- GNOME Shell 50.1-0ubuntu1.4; Mutter 50.1-0ubuntu2.4
- Chrome 152.0.7977.82
- Hide Top Bar v127, with its intellihide disabled
- Dock settings: dock-fixed=false, autohide=true, intellihide=false

Steps to reproduce:
1. Enable dock autohide and Hide Top Bar.
2. Maximize Chrome and focus it.
3. Let Hide Top Bar hide the panel.
4. Move the pointer to reveal and use the dock.

Expected: the dock appears and remains usable while hovered.
Actual: the dock flickers rapidly, making it difficult to use.

This is a maximized-window case on Wayland, not F11 fullscreen. I am
filing it separately from the older Xorg/fullscreen report #1905186
because I have not established that they are the same bug.

The matching current upstream report is:
https://github.com/micheleg/dash-to-dock/issues/2749
My confirmation and inline patch:
https://github.com/micheleg/dash-to-dock/issues/2749#issuecomment-6188827178
There is also an existing proposed fix for the newer upstream code:
https://github.com/micheleg/dash-to-dock/pull/2753

In the packaged v105 docking.js, _animateIn() only inhibits
unredirection for intellihide. The patch below extends that to ordinary
autohide, preserves the hold when visibility settings are refreshed, and
releases it after hiding even if the mode changed during the animation.
Existing idempotent hold/release helpers and destroy cleanup are
retained. Inhibition is compositor-wide while the dock is visible.

After applying the patch and starting a fresh GNOME session, I confirmed
that the same Chrome/dock interaction works without flickering. No Hide
Top Bar or dock preference changes were needed. JavaScript syntax and
mocked lifecycle checks also passed. This supports the
compositing/scanout explanation in the upstream report, but no
compositor render traces were collected here.

The diagnosis and patch were prepared with Codex assistance. I have
tested the packaged v105 fix, not v110, current upstream master, or PR
#2745. This is a local patch against the installed docking.js, not a
complete Ubuntu source-package debdiff. Thanks!

Patch against packaged docking.js:

--- a/docking.js
+++ b/docking.js
@@ -732,7 +732,9 @@
             this._intellihide.enable();
         } else {
             this._intellihide.disable();
-            this._restoreUnredirect();
+            // Auto-hide also needs compositing while the dock is visible.
+            if (!this._autohideIsEnabled)
+                this._restoreUnredirect();
         }
 
         this._updateDashVisibility();
@@ -863,7 +865,9 @@
     }
 
     _animateIn(time, delay) {
-        if (this._intellihideIsEnabled)
+        // With the top bar hidden, a maximized window can cover the monitor.
+        // Keep the dock composited above it in either dynamic visibility mode.
+        if (this._intellihideIsEnabled || this._autohideIsEnabled)
             this._disableUnredirect();
         this._dockState = State.SHOWING;
         this.dash.iconAnimator.start();
@@ -902,8 +906,8 @@
             mode: Clutter.AnimationMode.EASE_OUT_QUAD,
             onComplete: () => {
                 this._dockState = State.HIDDEN;
-                if (this._intellihideIsEnabled)
-                    this._restoreUnredirect();
+                // Release our hold even if the visibility mode changed 
mid-hide.
+                this._restoreUnredirect();
                 // Remove queued barrier removal timeout if any
                 if (this._removeBarrierTimeoutId > 0)
                     GLib.source_remove(this._removeBarrierTimeoutId);

** Affects: gnome-shell-ubuntu-extensions (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: autohide wayland

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

Title:
  Ubuntu Dock autohide flickers over maximized Chrome on Wayland with
  Hide Top Bar (26.04, dock v105)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gnome-shell-ubuntu-extensions/+bug/2170959/+subscriptions


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

Reply via email to