Remove alpha component of system colors

When using system colors it may happen (on windows 11 in particular)
that the background color is actually translucid. This is not
something we are prepared to handle and it creates ghosts on screen.

The fix is easy: the alpha channel of the colors is set to 255.

Fixes bug #13084.

(cherry picked from commit 095bb18331)
This commit is contained in:
Jean-Marc Lasgouttes 2024-07-22 20:36:20 +02:00 committed by Richard Kimberly Heck
parent 4a796889e9
commit 2999061e38
2 changed files with 5 additions and 1 deletions

View File

@ -86,7 +86,9 @@ QColor ColorCache::get(Color const & color, bool syscolors) const
QPalette::ColorRole const cr = role(color.baseColor);
if (syscolors && cr != QPalette::NoRole) {
static QColor const white = Qt::white;
QColor const c = pal_.brush(QPalette::Active, cr).color();
QColor c = pal_.brush(QPalette::Active, cr).color();
// Change to fully opaque color
c.setAlpha(255);
if (cr == QPalette::Base && c == white)
return lcolors_[color.baseColor];
else

View File

@ -67,6 +67,8 @@ What's new
- Enable OK/Apply button in tabular dialog when "Additional Space" combo has
been set to different value.
- Fix ghost image on Windows with system colors (bug 13084).
* INTERNALS