srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates/config/src
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2024-08-20 23:08:00 +0200
committersrdusr <[email protected]>2024-08-20 23:08:00 +0200
commitbb59ecfa2f1329d978fcfa8b7455db649f019f85 (patch)
treedafd907e26c1268ce0517544e6d1ba39a25d9aba /crates/config/src
parentd124fc27826c2cdf57e46d104db5347434454a24 (diff)
downloadsrdwm-bb59ecfa2f1329d978fcfa8b7455db649f019f85.tar.gz
srdwm-bb59ecfa2f1329d978fcfa8b7455db649f019f85.zip
Send tiled xdg_toplevel state so GTK stops reserving its own shadow
No configure this compositor ever sent set any xdg_toplevel::State bit at all - confirmed by grepping the whole crate, zero hits before this. GTK4 (Firefox concretely) reads the tiled bits to decide whether to reserve an invisible client-side shadow margin around its own content, independent of server- vs client-side decoration; with none ever sent it always assumed "floating, might need a shadow" and kept reserving one. That margin sits inside the committed buffer but is functionally invisible, so this compositor's own border - drawn at the full geometry, margin included, since nothing here knew the margin existed - ended up visibly offset from where the client's real chrome began. Root-caused from a live screenshot: Firefox's srdwm-drawn border sat clearly up-and-left of its actual toolbar, not framing it. Reported as "border is not with the window at start" and, more generally, borders never feeling like part of the window they're drawn around - which this is: decoration and content genuinely disagreeing about where the window's edge is. Sets all four Tiled* bits unconditionally on every xdg_toplevel configure - the same technique river/dwl use, telling every window it's flush against something and should skip its own shadow regardless of whether it's in a literal tiling layout, which is the outcome actually wanted here: this compositor draws the frame, nothing else should also be reserving room for one. Not visually verified against a live client yet - this needs an actual GTK app rendering under a restarted session to confirm the shadow margin is really gone, which no offline test can substitute for.
Diffstat (limited to 'crates/config/src')
0 files changed, 0 insertions, 0 deletions