diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-10-11 21:40:42 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-10-11 21:40:42 +0000 |
| commit | b8e9f23d66a6b47550225cb831240b31d5b470dc (patch) | |
| tree | 5cdd116777502d5a4b87673d6da66c1b36de1c90 /src/inkscape.cpp | |
| parent | Fix wrong value (diff) | |
| download | inkscape-b8e9f23d66a6b47550225cb831240b31d5b470dc.tar.gz inkscape-b8e9f23d66a6b47550225cb831240b31d5b470dc.zip | |
Separate Adwaita and Adwaita-dark with specific styling (alowing to tweak any theme with his theme name as css file)to allow better theming. Use this issue as reference: https://gitlab.com/inkscape/inkscape/issues/461
Diffstat (limited to 'src/inkscape.cpp')
| -rw-r--r-- | src/inkscape.cpp | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 030072df8..5a49b1ade 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -558,7 +558,6 @@ void Application::add_gtk_css() // Add style sheet (GTK3) auto const screen = Gdk::Screen::get_default(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gchar *gtk_font_name = nullptr; gchar *gtkThemeName = nullptr; gchar *gtkIconThemeName = nullptr; Glib::ustring themeiconname; @@ -584,7 +583,7 @@ void Application::add_gtk_css() } else { prefs->setString("/theme/iconTheme", Glib::ustring(gtkIconThemeName)); } - g_object_get(settings, "gtk-font-name", >k_font_name, NULL); + } g_free(gtkThemeName); @@ -601,6 +600,26 @@ void Application::add_gtk_css() } Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } + + Glib::ustring gtkthemename = prefs->getString("/theme/gtkTheme"); + gtkthemename += ".css"; + style = get_filename(UIS, gtkthemename.c_str()); + if (!style.empty()) { + if (themeprovider) { + Gtk::StyleContext::remove_provider_for_screen(screen, themeprovider); + } + if (!themeprovider) { + themeprovider = Gtk::CssProvider::create(); + } + try { + themeprovider->load_from_path(style); + } catch (const Gtk::CssProviderError &ex) { + g_critical("CSSProviderError::load_from_path(): failed to load '%s'\n(%s)", style.c_str(), + ex.what().c_str()); + } + Gtk::StyleContext::add_provider_for_screen(screen, themeprovider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } + if (!colorizeprovider) { colorizeprovider = Gtk::CssProvider::create(); } @@ -614,26 +633,6 @@ void Application::add_gtk_css() g_critical("CSSProviderError::load_from_data(): failed to load '%s'\n(%s)", css_str.c_str(), ex.what().c_str()); } Gtk::StyleContext::add_provider_for_screen(screen, colorizeprovider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - - if (gtk_font_name && !strncmp(gtk_font_name, "Cantarell", 9)) { - auto provider = Gtk::CssProvider::create(); - css_str = "#monoStrokeWidth,"; - css_str += "#fillEmptySpace,"; - css_str += "#SelectStatus,"; - css_str += "#CoordinateStatusX,"; - css_str += "#CoordinateStatusY,"; - css_str += "#DesktopMainTable spinbutton{"; - css_str += " font-family: sans-serif;"; - css_str += "}"; // we also can add to * but seems to me Cantarell looks better for other places - try { - provider->load_from_data(css_str); - } catch (const Gtk::CssProviderError &ex) { - g_critical("CSSProviderError::load_from_data(): failed to load '%s'\n(%s)", css_str.c_str(), - ex.what().c_str()); - } - Gtk::StyleContext::add_provider_for_screen(screen, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); - } - g_free(gtk_font_name); } void Application::readStyleSheets(bool forceupd) |
