From 395aa47c173a9fad7a38ff68ee764d9f93126e11 Mon Sep 17 00:00:00 2001 From: Daniel Guihot Date: Wed, 16 Sep 2026 06:18:28 +1000 Subject: Fix fullscreen map and focus transitions Keep hidden fullscreen clients managed and restore input focus after mapping. Handle hidden clients entering or leaving fullscreen. --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index c827164..0d60d00 100644 --- a/README.md +++ b/README.md @@ -14,13 +14,20 @@ dwm selects `StructureNotifyMask` on clients and `SubstructureNotifyMask` on the root, so calling `XUnmapWindow()` directly reaches `unmapnotify()` and unmanages the client. The patch adds a small `unmapclient()` helper that suppresses both masks around the unmap, the same technique the windowmap -patch uses. Hidden fullscreen clients are still parked off-screen so the -initial map from `manage()` does not put them on the wrong tag. +patch uses. + +Hidden fullscreen clients are not moved off-screen. The client tracks whether +the patch unmapped it, which lets `showhide()` map it before restoring input +focus without querying the X server on every arrange. Normal clients keep +dwm's original off-screen hiding. A hidden client that leaves fullscreen is +mapped off-screen again instead of remaining unmapped. ## Testing -Applies and builds against dwm 6.8. Runtime tested under Xvfb: a hidden -fullscreen client reports map state unmapped and stays managed. +Applies and builds against dwm 6.8. Runtime tested under Xvfb. Hidden +fullscreen clients became unmapped, stayed managed, mapped on return, and +regained real X input focus. Tests also covered a new fullscreen client +assigned to a hidden tag and a hidden client leaving fullscreen. ## Download -- cgit v1.3.1