diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-11-19 05:23:04 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-11-19 05:23:04 +0000 |
| commit | 969361993806dbe679d1065d5a869fbb74163e8e (patch) | |
| tree | 96d9ad847f6f5236719f06a9964d7f4fca1b72dc /src/ui | |
| parent | Multiple fixes for the objects panel (diff) | |
| download | inkscape-969361993806dbe679d1065d5a869fbb74163e8e.tar.gz inkscape-969361993806dbe679d1065d5a869fbb74163e8e.zip | |
Speedup filtering and panning
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/tools/node-tool.cpp | 16 | ||||
| -rw-r--r-- | src/ui/tools/select-tool.cpp | 9 |
2 files changed, 19 insertions, 6 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: diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index 2627f2e9a..553b021a2 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -799,8 +799,13 @@ bool SelectTool::root_handler(GdkEvent* event) { sp_canvas_item_ungrab(this->grabbed); this->grabbed = nullptr; } - - desktop->updateNow(); + desktop->canvas->endForcedFullRedraws(); // we want this forced redraw always with this tool + if (event->button.button == 1) { + // we want redraw of all dirty regions on relase + desktop->canvas->_forcefull = true; + } + // Think is not necesary now + // desktop->updateNow(); } if (event->button.button == 1) { |
