[LyX/master] Fix the model of mixing two alpha values
Koji Yokota <[email protected]> Thu, 11 Jun 2026 10:23:07 +0000
| Newsgroups | gmane.editors.lyx.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit f3500e03ae6410248524975336749eacc6fc9cc0 Author: Koji Yokota <[email protected]> Date: Thu Jun 11 19:16:25 2026 +0900 Fix the model of mixing two alpha values At least, 1) mixing two transparents should be transparent and 2) mixing two opaques should be opaque --- src/frontends/qt/ColorCache.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/frontends/qt/ColorCache.cpp b/src/frontends/qt/ColorCache.cpp index 0949c2f3da..135c2f362a 100644 --- a/src/frontends/qt/ColorCache.cpp +++ b/src/frontends/qt/ColorCache.cpp @@ -132,16 +132,18 @@ ColorPair ColorCache::getAll(Color const & color, bool syscolors) const merge_colors.first.toRgb().green()) / 2, (base_colors.first.toRgb().blue() + merge_colors.first.toRgb().blue()) / 2, - (base_colors.first.toRgb().alpha() + - merge_colors.first.toRgb().alpha()) / 2), + std::round( + (1 - (1 - base_colors.first.toRgb().alphaF()) * + (1 - merge_colors.first.toRgb().alphaF())) * 255)), QColor((base_colors.second.toRgb().red() + merge_colors.second.toRgb().red()) / 2, (base_colors.second.toRgb().green() + merge_colors.second.toRgb().green()) / 2, (base_colors.second.toRgb().blue() + merge_colors.second.toRgb().blue()) / 2, - (base_colors.second.toRgb().alpha() + - merge_colors.second.toRgb().alpha()) / 2), + std::round( + (1 - (1 - base_colors.second.toRgb().alphaF()) * + (1 - merge_colors.second.toRgb().alphaF())) * 255)), }; } // used by branches -- lyx-cvs mailing list [email protected] https://lists.lyx.org/mailman/listinfo/lyx-cvs