vcl/source/app/IconThemeSelector.cxx      |    4 ++++
 vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx |   15 +++++++++++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

New commits:
commit 75544eb042ab3fc79dd6104749a32af7e180c116
Author: Caolán McNamara <caol...@redhat.com>
Date:   Wed Oct 19 12:57:09 2016 +0100

    Resolves: tdf#102778 by default use breeze_dark when dark themes are 
requested
    
    Under gtk3 if gtk-application-prefer-dark-theme is enabled or the requested
    icon-theme name ends in [-|_]dark
    
    Change-Id: Ia70ea3adc51ac0ec2b26d08fc960c1c7285c338b

diff --git a/vcl/source/app/IconThemeSelector.cxx 
b/vcl/source/app/IconThemeSelector.cxx
index ce91d5b..91a082c 100644
--- a/vcl/source/app/IconThemeSelector.cxx
+++ b/vcl/source/app/IconThemeSelector.cxx
@@ -82,6 +82,10 @@ IconThemeSelector::SelectIconThemeForDesktopEnvironment(
         if (icon_theme_is_in_installed_themes(mPreferredIconTheme, 
installedThemes)) {
             return mPreferredIconTheme;
         }
+        //if a dark variant is preferred, and we didn't have an exact match, 
then try our one and only dark theme
+        if (mPreferredIconTheme.endsWith("_dark") && 
icon_theme_is_in_installed_themes("breeze_dark", installedThemes)) {
+            return "breeze_dark";
+        }
     }
 
     OUString themeForDesktop = 
GetIconThemeForDesktopEnvironment(desktopEnvironment);
diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx 
b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
index 3d5ee0f..8d6c2d0 100644
--- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
@@ -2719,8 +2719,19 @@ void GtkSalGraphics::updateSettings( AllSettings& 
rSettings )
 
     // preferred icon style
     gchar* pIconThemeName = nullptr;
-    g_object_get( pSettings, "gtk-icon-theme-name", &pIconThemeName, nullptr );
-    aStyleSet.SetPreferredIconTheme( OUString::createFromAscii( pIconThemeName 
) );
+    gboolean bDarkIconTheme = false;
+    g_object_get(pSettings, "gtk-icon-theme-name", &pIconThemeName,
+                            "gtk-application-prefer-dark-theme", 
&bDarkIconTheme,
+                            nullptr );
+    OUString sIconThemeName(OUString::createFromAscii(pIconThemeName));
+    if (sIconThemeName.endsWithIgnoreAsciiCase("-dark", &sIconThemeName) ||
+        sIconThemeName.endsWithIgnoreAsciiCase("_dark", &sIconThemeName))
+    {
+        bDarkIconTheme = true;
+    }
+    if (bDarkIconTheme)
+        sIconThemeName += "_dark";
+    aStyleSet.SetPreferredIconTheme(sIconThemeName);
     g_free( pIconThemeName );
 
     aStyleSet.SetToolbarIconSize( ToolbarIconSize::Large );
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to