mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-21 01:40:16 -05:00
wayland: properly restore window size when being un-tiled
Bind to xdg-shell version 2 if available, as this enables us to track our window’s ‘tiled’ state in the ‘configure’ events. This in turn allows us to stash the ‘old’ window size when being tiled, to be used again when restoring the window size when un-tiled.
This commit is contained in:
parent
f70d36ed5d
commit
f928c1fa68
5 changed files with 52 additions and 17 deletions
17
render.c
17
render.c
|
|
@ -2070,9 +2070,9 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
|||
* If we have a "last" used size - use that. Otherwise, use
|
||||
* the size from the user configuration.
|
||||
*/
|
||||
if (term->unmaximized_width != 0 && term->unmaximized_height != 0) {
|
||||
width = term->unmaximized_width;
|
||||
height = term->unmaximized_height;
|
||||
if (term->stashed_width != 0 && term->stashed_height != 0) {
|
||||
width = term->stashed_width;
|
||||
height = term->stashed_height;
|
||||
} else {
|
||||
switch (term->conf->size.type) {
|
||||
case CONF_SIZE_PX:
|
||||
|
|
@ -2225,9 +2225,14 @@ maybe_resize(struct terminal *term, int width, int height, bool force)
|
|||
term->render.last_cursor.row = NULL;
|
||||
|
||||
damage_view:
|
||||
if (!term->window->is_maximized && !term->window->is_fullscreen) {
|
||||
term->unmaximized_width = term->width;
|
||||
term->unmaximized_height = term->height;
|
||||
if (!term->window->is_maximized &&
|
||||
!term->window->is_fullscreen &&
|
||||
!term->window->is_tiled)
|
||||
{
|
||||
/* Stash current size, to enable us to restore it when we're
|
||||
* being un-maximized/fullscreened/tiled */
|
||||
term->stashed_width = term->width;
|
||||
term->stashed_height = term->height;
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue