summaryrefslogtreecommitdiffstats
path: root/src/ui/tools/node-tool.cpp
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-11-19 05:23:04 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-11-19 05:23:04 +0000
commit969361993806dbe679d1065d5a869fbb74163e8e (patch)
tree96d9ad847f6f5236719f06a9964d7f4fca1b72dc /src/ui/tools/node-tool.cpp
parentMultiple fixes for the objects panel (diff)
downloadinkscape-969361993806dbe679d1065d5a869fbb74163e8e.tar.gz
inkscape-969361993806dbe679d1065d5a869fbb74163e8e.zip
Speedup filtering and panning
Diffstat (limited to 'src/ui/tools/node-tool.cpp')
-rw-r--r--src/ui/tools/node-tool.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp
index 5054a83d9..ca485a706 100644
--- a/src/ui/tools/node-tool.cpp
+++ b/src/ui/tools/node-tool.cpp
@@ -470,6 +470,9 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) {
_previous_selection = _current_selection;
_current_selection = vec;
+ // Be sure unclean areas are redraw on selection change
+ desktop->getCanvas()->_forcefull = true;
+
this->_multipath->setItems(shapes);
this->update_tip(nullptr);
// This not need to be called canvas is updated on selection change on setItems
@@ -532,6 +535,11 @@ bool NodeTool::root_handler(GdkEvent* event) {
}
// create pathflash outline
if (prefs->getBool("/tools/nodes/pathflash_enabled")) {
+ // We want to reset flashed item to can highligh again previous one
+ if (!over_item && this->flashed_item) {
+ this->flashed_item = nullptr;
+ break;
+ }
if (!over_item || over_item == this->flashed_item) {
break;
}
@@ -620,9 +628,6 @@ bool NodeTool::root_handler(GdkEvent* event) {
break;
case GDK_BUTTON_RELEASE:
- if (event->button.button == 1) {
- this->desktop->canvas->_forcefull = true;
- }
if (this->_selector->doubleClicked()) {
// If the selector received the doubleclick event, then we're at some distance from
// the path; otherwise, the doubleclick event would have been received by
@@ -651,7 +656,10 @@ bool NodeTool::root_handler(GdkEvent* event) {
}
}
}
-
+ if (event->button.button == 1) {
+ // we want redraw of all dirty regions on relase
+ this->desktop->canvas->_forcefull = true;
+ }
break;
default: