render: take visible border width into account when setting window geometry

This fixes e.g. window snapping in GNOME.
This commit is contained in:
Daniel Eklöf 2022-04-16 10:47:55 +02:00
parent 5539eac590
commit 0e477e2c5e
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 14 additions and 5 deletions

View file

@ -106,6 +106,8 @@
(https://codeberg.org/dnkl/foot/issues/1008).
* Improved compatibility with XTerm when `modifyOtherKeys=2`
(https://codeberg.org/dnkl/foot/issues/1009).
* Window geometry when CSDs are enabled and CSD border width set to a
non-zero value. This fixes window snapping in e.g. GNOME.
### Security

View file

@ -3760,16 +3760,23 @@ damage_view:
#endif
{
bool title_shown = !term->window->is_fullscreen &&
bool title_shown =
!term->window->is_fullscreen &&
term->window->csd_mode == CSD_YES;
bool border_shown =
!term->window->is_fullscreen &&
!term->window->is_maximized &&
term->window->csd_mode == CSD_YES;
int title_height = title_shown ? term->conf->csd.title_height : 0;
int border_width = border_shown ? term->conf->csd.border_width_visible : 0;
xdg_surface_set_window_geometry(
term->window->xdg_surface,
0,
-title_height,
term->width / term->scale,
term->height / term->scale + title_height);
-border_width,
-title_height - border_width,
term->width / term->scale + 2 * border_width,
term->height / term->scale + title_height + 2 * border_width);
}
tll_free(term->normal.scroll_damage);