summaryrefslogtreecommitdiffstats
path: root/src/ui/tools
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-10-09 21:32:59 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-10-10 06:34:29 +0000
commitc0ad965c1ffa692ca1be1fef4b4943413f2d9650 (patch)
tree9878d022c9d46ad206e7e23e86b04bd0636fe32d /src/ui/tools
parentChange color entry widget UX (diff)
downloadinkscape-c0ad965c1ffa692ca1be1fef4b4943413f2d9650.tar.gz
inkscape-c0ad965c1ffa692ca1be1fef4b4943413f2d9650.zip
Improve node tool not limiting the time to make the rendering
Diffstat (limited to 'src/ui/tools')
-rw-r--r--src/ui/tools/node-tool.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp
index 24785d580..189bed04c 100644
--- a/src/ui/tools/node-tool.cpp
+++ b/src/ui/tools/node-tool.cpp
@@ -185,6 +185,7 @@ NodeTool::~NodeTool() {
destroy_group(data.outline_group);
destroy_group(data.dragpoint_group);
destroy_group(this->_transform_handle_group);
+ this->desktop->canvas->endForcedFullRedraws();
}
void NodeTool::setup() {
@@ -288,6 +289,7 @@ void NodeTool::setup() {
void NodeTool::finish()
{
this->_selected_nodes->clear();
+ this->desktop->canvas->endForcedFullRedraws();
ToolBase::finish();
}
@@ -554,9 +556,8 @@ bool NodeTool::root_handler(GdkEvent* event) {
//prefs->getInt("/tools/nodes/highlight_color", 0xff0000ff), 1.0,
over_item->highlight_color(), 1.0,
SP_STROKE_LINEJOIN_MITER, SP_STROKE_LINECAP_BUTT);
-
+
sp_canvas_bpath_set_fill(SP_CANVAS_BPATH(flash), 0, SP_WIND_RULE_NONZERO);
- desktop->canvas->forceFullRedrawAfterInterruptions(5);
this->flash_tempitem = desktop->add_temporary_canvasitem(flash,
prefs->getInt("/tools/nodes/pathflash_timeout", 500));
@@ -639,13 +640,14 @@ bool NodeTool::root_handler(GdkEvent* event) {
}
}
}
- desktop->canvas->forceFullRedrawAfterInterruptions(5);
+
break;
default:
break;
}
-
+ // we realy dont want to stop any node operation we want to success all even the time consume it
+ this->desktop->canvas->forceFullRedrawAfterInterruptions(0);
return ToolBase::root_handler(event);
}
@@ -737,7 +739,7 @@ void NodeTool::update_tip(GdkEvent *event) {
*/
void NodeTool::select_area(Geom::Rect const &sel, GdkEventButton *event) {
using namespace Inkscape::UI;
-
+
if (this->_multipath->empty()) {
// if multipath is empty, select rubberbanded items rather than nodes
Inkscape::Selection *selection = this->desktop->selection;
@@ -755,7 +757,7 @@ void NodeTool::select_area(Geom::Rect const &sel, GdkEventButton *event) {
void NodeTool::select_point(Geom::Point const &/*sel*/, GdkEventButton *event) {
using namespace Inkscape::UI; // pull in event helpers
-
+
if (!event) {
return;
}