srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/core/src
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2024-08-14 16:55:00 +0200
committersrdusr <[email protected]>2024-08-14 16:55:00 +0200
commit380c4d90f63ac9c82455206072c2deac246a4fdc (patch)
treed69026e4764a4e34f2002e08c384fa7fc331ac80 /crates/core/src
parent09e63d204132f767cee7d0846e291d659f79fe90 (diff)
downloadsrdwm-380c4d90f63ac9c82455206072c2deac246a4fdc.tar.gz
srdwm-380c4d90f63ac9c82455206072c2deac246a4fdc.zip
Handle late title/class updates on XWayland windows
map_window_request only ever read window.title()/.class() once, at MapRequest - for a client whose managed window doesn't carry WM_NAME/WM_CLASS at that exact moment (or the properties simply arrive later), Window.title/app_id stayed permanently empty. That reaches srd.rule's class matching, this compositor's own titlebar text, and every wlr-foreign-toplevel-management listener (a dock's running indicator, an app switcher, icon lookup) - confirmed live via a peer session's AGS instance rendering blank rows for Spotify and OpenSnitch. Implements XwmHandler::property_notify (previously unhandled, a no-op default) to re-read title/class on WmWindowProperty::Title/Class and update Window plus notify rule/decoration/foreign-toplevel listeners on an actual change - the XWayland-side mirror of sync_toplevel_metadata, which already exists for exactly this problem on the native xdg-shell path (see its own doc comment). Not fully verified against the specific live case that surfaced this: whether XWayland's X11Wm delivers property_notify for a *managed* window whose real WM_NAME/WM_CLASS live only on an unmanaged sibling/ child (rather than arriving late on the same window) is still an open question - this fixes the well-documented "arrives late" case with certainty, and may or may not cover that harder case too.
Diffstat (limited to 'crates/core/src')
0 files changed, 0 insertions, 0 deletions