diff options
Diffstat (limited to 'src/gui/NodeView.cpp')
-rw-r--r-- | src/gui/NodeView.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/gui/NodeView.cpp b/src/gui/NodeView.cpp index 4e27594..407961c 100644 --- a/src/gui/NodeView.cpp +++ b/src/gui/NodeView.cpp @@ -37,8 +37,8 @@ NodeView::NodeView(Gtk::Window* window, : FlowCanvas::Ellipse(canvas, "", x, y, 20, 20, false) , _window(window) , _node(node) - , _default_border_color(_border_color) - , _old_color(_color) + , _default_border_color(get_border_color()) + , _default_fill_color(get_fill_color()) { signal_click().connect( sigc::mem_fun(this, &NodeView::on_click)); @@ -133,14 +133,12 @@ NodeView::on_property(Machina::URIInt key, const Raul::Atom& value) set_border_width(value.get_bool() ? 4.0 : 1.0); } else if (key == URIs::instance().machina_active) { if (value.get_bool()) { - if (_color != active_color) { - _old_color = _color; - set_base_color(active_color); + if (get_fill_color() != active_color) { + set_fill_color(active_color); set_border_color(active_border_color); } - } else if (_color == active_color) { - set_base_color(_old_color); - set_border_color(_default_border_color); + } else if (get_fill_color() == active_color) { + set_default_colors(); } } else if (key == URIs::instance().machina_enter_action) { const uint64_t action_id = value.get_int32(); @@ -160,3 +158,10 @@ NodeView::on_action_property(Machina::URIInt key, const Raul::Atom& value) if (key == URIs::instance().machina_note_number) show_label(true); } + +void +NodeView::set_default_colors() +{ + set_fill_color(_default_fill_color); + set_border_color(_default_border_color); +} |