summaryrefslogtreecommitdiffstats
path: root/src/inkscape.cpp
diff options
context:
space:
mode:
authorJabiertxof <jabier.arraiza@marker.es>2018-11-08 18:36:18 +0000
committerJabiertxof <jabier.arraiza@marker.es>2018-11-09 10:44:36 +0000
commit0ddbdf18a2cfcf54f591b1372bb3eb9dde9728e2 (patch)
tree90fe83ef220a34b5df3877e7b7dc01af82b78a4c /src/inkscape.cpp
parentAdd README to src/ui/view (diff)
downloadinkscape-0ddbdf18a2cfcf54f591b1372bb3eb9dde9728e2.tar.gz
inkscape-0ddbdf18a2cfcf54f591b1372bb3eb9dde9728e2.zip
This improve symbolic icon rendering moving it to CSS only. There is places in the UI whar we claim for a Pixbuf. Currently its not possible render them as symbolic without the previos hack
Diffstat (limited to 'src/inkscape.cpp')
-rw-r--r--src/inkscape.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/inkscape.cpp b/src/inkscape.cpp
index 027dd9dce..a0dfa0a61 100644
--- a/src/inkscape.cpp
+++ b/src/inkscape.cpp
@@ -378,15 +378,26 @@ Application::add_style_sheet()
// Add style sheet (GTK3)
auto const screen = Gdk::Screen::get_default();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- // symbolic
auto provider = Gtk::CssProvider::create();
Glib::ustring css_str = "";
if (prefs->getBool("/theme/symbolicIcons", false)) {
+ int colorset = prefs->getInt("/theme/symbolicColor", 0x000000ff);
gchar colornamed[64];
- sp_svg_write_color(colornamed, sizeof(colornamed), prefs->getInt("/theme/symbolicColor", 0x000000ff));
- css_str += "*{-gtk-icon-style: symbolic;}toolbutton image{ color: ";
+ sp_svg_write_color(colornamed, sizeof(colornamed), colorset);
+ // Use in case the special widgets have inverse theme background and symbolic
+ int colorset_inverse = colorset ^ 0xffffff00;
+ gchar colornamed_inverse[64];
+ sp_svg_write_color(colornamed_inverse, sizeof(colornamed_inverse), colorset_inverse);
+ css_str += "*{ -gtk-icon-style: symbolic;}";
+ css_str += "image{ color:";
css_str += colornamed;
css_str += ";}";
+ css_str += "#iconinverse{ color:";
+ css_str += colornamed_inverse;
+ css_str += ";}";
+ css_str += "#iconregular{ -gtk-icon-style: regular;}";
+ } else {
+ css_str += "*{-gtk-icon-style: regular;}";
}
GtkSettings *settings = gtk_settings_get_default();
const gchar *gtk_font_name = "";
@@ -518,6 +529,7 @@ Application::Application(const char* argv, bool use_gui) :
g_object_set(settings, "gtk-application-prefer-dark-theme",
prefs->getBool("/theme/darkTheme", gtkApplicationPreferDarkTheme), NULL);
}
+
load_menus();
Inkscape::DeviceManager::getManager().loadConfig();
}