term: stash last known DPI, and use after a unmapped/mapped sequence

A compositor may unmap, and then remap the window, for example when
the window is minimized, or if the user switches workspace.

With DPI aware rendering, we *need* to know on which output we're
mapped, in order to use the correct DPI. This means the first frame we
render, before being mapped, always guesses the DPI.

In an unmap/map sequence, guessing the wrong DPI means the window will
flicker.

Fix by stashing the last used DPI value, and use that instead of
guessing.

This means the *only* time we _actually_ guess the DPI, is the very
first frame, when starting up foot.
This commit is contained in:
Daniel Eklöf 2024-04-17 08:35:58 +02:00
parent a5b369ede4
commit 7c20fb247c
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
3 changed files with 25 additions and 3 deletions

View file

@ -68,6 +68,9 @@
* Crash when printing double-width (or longer) characters to, or near,
the last column, when auto-wrap (private mode 7) has been disabled.
* Dynamically sized sixel being trimmed to nothing.
* Flickering with `dpi-aware=yes` and window is unmapped/remapped
(some compositors do this when window is minimized), in a
multi-monitor setup with different monitor DPIs.
### Security