diff --git a/src/ui/toolbar/pencil-toolbar.cpp b/src/ui/toolbar/pencil-toolbar.cpp index e781bf3bba71582a79ee26f9042f5eef4ba8a08e..5d7fabe4ac7989f6fb9761b35347e44cbb13d32e 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 70ab0f8db7c59d36d68d69883a1054acba9226ea..d17c0d7721fcb34fb92f9414ac65e4a4ea105967 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;