]> git.lyx.org Git - lyx.git/commitdiff
Remove alpha component of system colors
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 22 Jul 2024 18:36:20 +0000 (20:36 +0200)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 22 Jul 2024 18:36:20 +0000 (20:36 +0200)
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.

src/frontends/qt/ColorCache.cpp

index 1c3d68e548ac0a96fd771e303d7f50b0c8e8ca63..2566b750257dfa6697d216c714dc24f07cc13a71 100644 (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