From e8845e56eb26305ca1f2fa4efc5b5c20879664b4 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Tue, 31 Jul 2018 00:53:20 +0200 Subject: First try co fix icons bugs --- src/inkscape.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'src/inkscape.cpp') diff --git a/src/inkscape.cpp b/src/inkscape.cpp index b2f032d47..798f4b487 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -457,10 +457,31 @@ Application::Application(const char* argv, bool use_gui) : /* Load the preferences and menus */ Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - g_object_set(gtk_settings_get_default(), "gtk-theme-name", prefs->getString("/theme/gtkTheme").c_str(), NULL); - g_object_set(gtk_settings_get_default(), "gtk-icon-theme-name", prefs->getString("/theme/iconTheme").c_str(), NULL); - g_object_set(gtk_settings_get_default(), "gtk-application-prefer-dark-theme", - prefs->getBool("/theme/darkTheme", false), NULL); + GtkSettings * settings = gtk_settings_get_default(); + const gchar * gtkThemeName; + g_object_get(settings ,"gtk-theme-name", >kThemeName, NULL); + const gchar * gtkIconThemeName; + g_object_get(settings ,"gtk-icon-theme-name", >kIconThemeName, NULL); + prefs->setString("/theme/defaultIconTheme", Glib::ustring(gtkIconThemeName)); + bool gtkApplicationPreferDarkTheme; + g_object_get(settings ,"gtk-application-prefer-dark-theme", >kApplicationPreferDarkTheme, NULL); + if (prefs->getString("/theme/gtkTheme") != "") { + g_object_set(settings, "gtk-theme-name", prefs->getString("/theme/gtkTheme").c_str(), NULL); + } else { + prefs->setString("/theme/gtkTheme", Glib::ustring(gtkThemeName)); + } + + if (prefs->getString("/theme/iconTheme") != "") { + g_object_set(settings, "gtk-icon-theme-name", prefs->getString("/theme/iconTheme").c_str(), NULL); + } else { + Glib::ustring defaulticontheme = prefs->getString("/theme/defaultIconTheme"); + if(defaulticontheme == "Adwaita") { + defaulticontheme = "hicolor"; + } + prefs->setString("/theme/iconTheme", defaulticontheme); + } + g_object_set(settings, "gtk-application-prefer-dark-theme", + prefs->getBool("/theme/darkTheme", gtkApplicationPreferDarkTheme), NULL); InkErrorHandler* handler = new InkErrorHandler(use_gui); prefs->setErrorHandler(handler); { -- cgit v1.2.3