From 47f95bef1d9fee5d586ab3bb077133bcb9aedbd4 Mon Sep 17 00:00:00 2001 From: Nathan Lee <2431820-nathanal@users.noreply.gitlab.com> Date: Fri, 7 Jun 2019 22:19:40 +1000 Subject: [PATCH] Sync pen toolbar mode change with tool Reverts a previous fix that did this but caused https://gitlab.com/inkscape/inkscape/issues/282 where the pen tool's green preview line vanished when deleting the last node with the pen tool. --- src/ui/toolbar/pencil-toolbar.cpp | 3 +++ src/ui/tools/pen-tool.cpp | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ui/toolbar/pencil-toolbar.cpp b/src/ui/toolbar/pencil-toolbar.cpp index e781bf3bba..5d7fabe4ac 100644 --- a/src/ui/toolbar/pencil-toolbar.cpp +++ b/src/ui/toolbar/pencil-toolbar.cpp @@ -252,6 +252,9 @@ PencilToolbar::mode_changed(int mode) if (_simplify) { _simplify->set_visible(visible); } + if (tools_isactive(_desktop, TOOLS_FREEHAND_PEN)) { + SP_PEN_CONTEXT(_desktop->event_context)->setPolylineMode(); + } } /* This is used in generic functions below to share large portions of code between pen and pencil tool */ diff --git a/src/ui/tools/pen-tool.cpp b/src/ui/tools/pen-tool.cpp index 70ab0f8db7..d17c0d7721 100644 --- a/src/ui/tools/pen-tool.cpp +++ b/src/ui/tools/pen-tool.cpp @@ -429,7 +429,7 @@ bool PenTool::_handleButtonPress(GdkEventButton const &bevent) { // This is allowed, if we just canceled curve case PenTool::POINT: if (this->npoints == 0) { - this->setPolylineMode(); + this->_bsplineSpiroColor(); Geom::Point p; if ((bevent.state & GDK_CONTROL_MASK) && (this->polylines_only || this->polylines_paraxial)) { p = event_dt; @@ -508,7 +508,6 @@ bool PenTool::_handleButtonPress(GdkEventButton const &bevent) { this->_setSubsequentPoint(p, true); } } - this->_bsplineSpiroColor(); // avoid the creation of a control point so a node is created in the release event this->state = (this->spiro || this->bspline || this->polylines_only) ? PenTool::POINT : PenTool::CONTROL; ret = true; -- GitLab