render: whole-window transparency when unfocused

This adds a new option, colors.unfocused-alpha. When set to a value <
1.0, the entire window (*everything* - all bg/fg colors, images etc)
are made transparent while the window does not have keyboard focus.

The way this is implemented (trying to keep the patch small), we need
to do full-screen repaints while in this mode.

That is, all screen updates result in full-screen repaints when:

* The window does not have keyboard focus
* The window *just* gained keyboard focus (i.e. last frame was
  rendered with transparency)

As such, one can expect a fairly large performance impact when there’s
large amount of output while the window is unfocused.

Focused windows are unaffected, as are unfocused windows when
colors.unfocused-alpha == 1.0.
This commit is contained in:
Daniel Eklöf 2021-08-11 17:36:42 +02:00
parent 2fbc336eb9
commit 9013a810f1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
7 changed files with 57 additions and 0 deletions

View file

@ -144,6 +144,7 @@
* Mouse buttons 6/7 (mouse wheel left/right).
* `url.uri-characters` option to `foot.ini`
(https://codeberg.org/dnkl/foot/issues/654).
* `colors.unfocused-alpha` to `foot.ini`.
### Changed