diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-06-23 17:15:35 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-06-23 17:15:53 +0000 |
| commit | e82a32013c7837f830b11637182ce3da8a097372 (patch) | |
| tree | 3be83a1533bb0d22ca4c6ef1d89aa636fedf2d00 /src/ui/dialog/dialog.cpp | |
| parent | Update macOS build pipeline (diff) | |
| download | inkscape-e82a32013c7837f830b11637182ce3da8a097372.tar.gz inkscape-e82a32013c7837f830b11637182ce3da8a097372.zip | |
Remove experimental code to work in MR and fixes for selectors
Diffstat (limited to 'src/ui/dialog/dialog.cpp')
| -rw-r--r-- | src/ui/dialog/dialog.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/ui/dialog/dialog.cpp b/src/ui/dialog/dialog.cpp index 2ba2856ff..3baec5106 100644 --- a/src/ui/dialog/dialog.cpp +++ b/src/ui/dialog/dialog.cpp @@ -74,11 +74,13 @@ Dialog::Dialog(Behavior::BehaviorFactory behavior_factory, const char *prefs_pat INKSCAPE.signal_dialogs_hide.connect(sigc::mem_fun(*this, &Dialog::onHideF12)); INKSCAPE.signal_dialogs_unhide.connect(sigc::mem_fun(*this, &Dialog::onShowF12)); INKSCAPE.signal_shut_down.connect(sigc::mem_fun(*this, &Dialog::onShutdown)); + INKSCAPE.signal_change_theme.connect(sigc::mem_fun(*this, &Dialog::addTopWindowClasses)); Glib::wrap(gobj())->signal_event().connect(sigc::mem_fun(*this, &Dialog::_onEvent)); Glib::wrap(gobj())->signal_key_press_event().connect(sigc::mem_fun(*this, &Dialog::_onKeyPress)); read_geometry(); + addTopWindowClasses(); } Dialog::~Dialog() @@ -308,6 +310,31 @@ Dialog::_getSelection() return SP_ACTIVE_DESKTOP->getSelection(); } +void Dialog::addTopWindowClasses() +{ + SPDesktop *desktop = SP_ACTIVE_DESKTOP; + if (desktop) { + Gtk::Widget *canvas = Glib::wrap(GTK_WIDGET(desktop->canvas)); + Gtk::Window *toplevel_window = dynamic_cast<Gtk::Window *>(canvas->get_toplevel()); + if (toplevel_window) { + if (toplevel_window->get_style_context()->has_class("dark")) { + Glib::wrap(gobj())->get_style_context()->add_class("dark"); + Glib::wrap(gobj())->get_style_context()->remove_class("bright"); + } else { + Glib::wrap(gobj())->get_style_context()->add_class("bright"); + Glib::wrap(gobj())->get_style_context()->remove_class("dark"); + } + if (toplevel_window->get_style_context()->has_class("symbolic")) { + Glib::wrap(gobj())->get_style_context()->add_class("symbolic"); + Glib::wrap(gobj())->get_style_context()->remove_class("regular"); + } else { + Glib::wrap(gobj())->get_style_context()->remove_class("symbolic"); + Glib::wrap(gobj())->get_style_context()->add_class("regular"); + } + } + } +} + } // namespace Dialog } // namespace UI } // namespace Inkscape |
