diff options
| author | srdusr <[email protected]> | 2025-03-20 16:37:00 +0200 |
|---|---|---|
| committer | srdusr <[email protected]> | 2025-03-20 16:37:00 +0200 |
| commit | 9f7744698128d7effb234eb9021b67707db3f721 (patch) | |
| tree | f62968f90279e0f1a7ee8b9b414f013547ebd69b /legacy-cpp/scripts | |
| parent | 22775f37f0adfff50f4750b657892fb33e1b2ec4 (diff) | |
| download | srdwm-9f7744698128d7effb234eb9021b67707db3f721.tar.gz srdwm-9f7744698128d7effb234eb9021b67707db3f721.zip | |
Fix border strips staying sized for a window's previous geometry
apply_geometry and restore - the Platform callbacks core's toggle_
maximize/apply_snap_zone/restore_window drive for a pure geometry
change - only called sync_geometry, never redraw_decoration_buffer.
The cached border-strip/titlebar bitmaps (self.border_top_decorations,
self.border_bottom_decorations, self.decorations) size themselves from
effective_frame, which can differ from w.geometry alone once a CSD
client's own invisible shadow margin is involved (see that function's
own doc comment) - but nothing here rebuilt them right when this
callback changed w.geometry. The next rebuild only happened whenever
this window's client next committed a frame or some other, unrelated
trigger reached redraw_decoration_buffer, not reliably right away.
Confirmed live: maximizing then restoring a Chrome window left its
border strips sized for the maximized frame while its real content had
already settled back to the smaller restored size, immediately and
permanently until some later trigger happened to catch it up - a
real, visible gap between content and border on the far (east/south)
edges, a different bug from the half-pixel corner seam fixed
separately in blend_corner_pixel.
Both apply_geometry and restore now also call redraw_decoration_buffer
right after sync_geometry, in both the udev and winit backends.
Diffstat (limited to 'legacy-cpp/scripts')
0 files changed, 0 insertions, 0 deletions