Add transparent panel adapting to background image characteristics
Commit message of a4851831:
Allow making the panel completely transparent if the background provides enough contrast for either black or white text.
The following background characteristics are used to determine the text-friendliness of the wallpaper:
-
Normal: The background in the area around the panel does not have any notable properties (default case, no particular CSS class)
-
Bright / Dark: The panel background is either notably bright or dark ("background-bright" or "background-dark" CSS class)
-
Noisy: The panel background is noisy and might not provide sufficient contrast for text, this case is also used if the color analysis failed ("background-noisy" CSS class)
A background image can have both the Noisy and the Bright / Dark characteristics set at the same time.
We use the transparent panel with white text by default and only switch to the panel with dark text if the background is very bright. If the background is noisy, we always use the opaque panel. In the overview, we use the transparent panel with white text by default.
The "window-created" signal of MetaDisplay is used instead of connecting to the "actor-added/removed" signals of the window_group because the workspace switching animation reparents all windows to its own container during the animation, which causes a lot of unnecessary calls to _updateOpaqueState.
Depends on mutter!434