commit 882a853993bffde138c28367332a67dbf190fc4e
Author: Jürgen Spitzmüller <[email protected]>
Date:   Wed Apr 30 14:10:07 2025 +0200

    Consider dark mode in MenuButtonBase (#13182)
    
    (cherry picked from commit 627d5738caac92c00b21ab3e2d984a1dd83d8e9a)
---
 src/frontends/qt/GuiApplication.cpp | 6 +++---
 src/frontends/qt/GuiApplication.h   | 2 ++
 src/frontends/qt/GuiToolbar.cpp     | 9 ++++++++-
 status.24x                          | 2 ++
 4 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/frontends/qt/GuiApplication.cpp 
b/src/frontends/qt/GuiApplication.cpp
index 494a82ab3f..8e6ae51326 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -638,7 +638,7 @@ IconInfo iconInfo(FuncRequest const & f, bool unknown, bool 
rtl)
 }
 
 
-QPixmap prepareForDarkMode(QPixmap pixmap)
+QPixmap GuiApplication::prepareForDarkMode(QPixmap pixmap) const
 {
        QPalette palette = QPalette();
        QColor text_color = palette.color(QPalette::Active, 
QPalette::WindowText);
@@ -687,7 +687,7 @@ QPixmap getPixmap(QString const & path, QString const & 
name, QString const & ex
        if (pixmap.load(fpath)) {
                if (fpath.contains("math") || fpath.contains("ipa")
                    || fpath.contains("bullets"))
-                       return prepareForDarkMode(pixmap);
+                       return guiApp->prepareForDarkMode(pixmap);
                return pixmap;
        }
 
@@ -727,7 +727,7 @@ QIcon getIcon(FuncRequest const & f, bool unknown, bool rtl)
        }
 
        if (icondata.invert)
-               pixmap = prepareForDarkMode(pixmap);
+               pixmap = guiApp->prepareForDarkMode(pixmap);
 
        if (icondata.swap)
                return QIcon(pixmap.transformed(QTransform().scale(-1, 1)));
diff --git a/src/frontends/qt/GuiApplication.h 
b/src/frontends/qt/GuiApplication.h
index 11bb670886..bbae18fb13 100644
--- a/src/frontends/qt/GuiApplication.h
+++ b/src/frontends/qt/GuiApplication.h
@@ -96,6 +96,8 @@ public:
 
        /// Scale Pixmaps properly (also for HiDPI)
        QPixmap getScaledPixmap(QString imagedir, QString name) const;
+    ///
+    QPixmap prepareForDarkMode(QPixmap pixmap) const;
 
        ///
        Clipboard & clipboard();
diff --git a/src/frontends/qt/GuiToolbar.cpp b/src/frontends/qt/GuiToolbar.cpp
index 76b6853d4a..39069dd112 100644
--- a/src/frontends/qt/GuiToolbar.cpp
+++ b/src/frontends/qt/GuiToolbar.cpp
@@ -250,7 +250,14 @@ MenuButtonBase::MenuButtonBase(GuiToolbar * bar, 
ToolbarItem const & item)
                FileName const fname = imageLibFileSearch(imagedir, name, 
"svgz,png",
                        theGuiApp()->imageSearchMode(), 
theGuiApp()->isInDarkMode());
                if (fname.exists()) {
-                       setIcon(QIcon(toqstr(fname.absFileName())));
+                       QString const fpath = toqstr(fname.absFileName());
+                       QPixmap pixmap;
+                       if (pixmap.load(fpath)) {
+                               if (fpath.contains("math") || 
fpath.contains("ipa")
+                                       || fpath.contains("bullets"))
+                               pixmap = guiApp->prepareForDarkMode(pixmap);
+                       }
+                       setIcon(QIcon(pixmap));
                        break;
                }
        }
diff --git a/status.24x b/status.24x
index 36bf5eaddf..67b40fcb62 100644
--- a/status.24x
+++ b/status.24x
@@ -117,6 +117,8 @@ What's new
 
 - Fix display of some icons in dialogs in dark mode.
 
+- Fix display of menu buttons in dark mode.
+
 - Fix minor issues with automatic deletion of bibitem insets.
 
 - Correctly check maxima output for syntax errors.
-- 
lyx-cvs mailing list
[email protected]
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to