Fix X11 input barrier when dock is hidden; increase dwell strip height - #349
Fix X11 input barrier when dock is hidden; increase dwell strip height#349vireonxi-om wants to merge 1 commit into
Conversation
- Register the dock container with affectsInputRegion: false so its full-width chrome actor stops permanently blocking clicks on X11 once the dock slides out of view. Input for the visible dock is still carried by struts (input-region tracked, hidden with the dock), and the edge dwell strip still reveals the dock on hover. Fixes icedman#317. - Bump the dwell reveal strip from 2px to 4px so the edge hover target is easier to hit reliably when autohide is enabled. Verified on Ubuntu 24.04, GNOME Shell 46, X11, extension v92, dock at bottom, autohide + dodge enabled: synthetic xdotool/xev clicks in the dock's reserved bottom band now reach the window underneath instead of being swallowed by the shell stage; dock still reveals/hides normally. Related: icedman#342 (same core fix, independently arrived at and verified here; this PR also includes the dwell height change).
|
Heads up on one edge case, since I hit this same bug and landed on your diagnosis independently — the container/ The one gap: this fix relies on if (dock.extension.autohide_dash) {
dock.struts.x = dock._background.x + dock._monitor.x;
dock.struts.width = dock._background.width;
}With autohide disabled that branch never runs, I've opened #356 with the |
Fixes #317.
Symptom
With autohide enabled on X11, clicks in the bottom band of the screen (roughly the dock's height, full monitor width) never reach the application window underneath while the dock is hidden.
Root cause
The dock container is a chrome actor sized to the full monitor width/dock height, and keeps that size when the dock slides out — only the inner dash is translated off-screen and
strutsis hidden. Because the container is registered viaMain.layoutManager.addChrome()withaffectsInputRegionleft at its default (true), its whole rect stays in the shell's X11 stage input region permanently. Clicks landing there are delivered to the shell stage instead of the window below. Wayland ignores the stage input region, so this only reproduces on X11.Changes
affectsInputRegion: false(the line was already present, commented out). Input for the visible dock is already carried by thestrutsactor (input-region tracked, hidden together with the dock), and the dwell strip still reveals the dock at the screen edge.Verification
On Ubuntu 24.04, GNOME Shell 46, X11, extension v92, dock at bottom, autohide + dodge enabled:
Note: this addresses the same root cause as #342 (arrived at independently and verified on my own machine before noticing that PR); this one additionally includes the dwell-height bump. Happy to close in favor of #342 if maintainer prefers a single fix — just flagging both exist.