From 30f2c8a062594750f351f823aa78916f8e61bfe7 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 3 Dec 2016 17:11:45 +0100 Subject: Add triangle knot. (bzr r15293) --- src/knot.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index b57c938c3..8ac84b97b 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -71,6 +71,7 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip) this->flags = 0; this->size = 8; + this->angle = 0; this->pos = Geom::Point(0, 0); this->grabbed_rel_pos = Geom::Point(0, 0); this->anchor = SP_ANCHOR_CENTER; @@ -111,6 +112,7 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip) SP_TYPE_CTRL, "anchor", SP_ANCHOR_CENTER, "size", 8.0, + "angle", 0.0, "filled", TRUE, "fill_color", 0xffffff00, "stroked", TRUE, @@ -214,7 +216,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot if ((event->button.button == 1) && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) { Geom::Point const p = knot->desktop->w2d(Geom::Point(event->button.x, event->button.y)); knot->startDragging(p, (gint) event->button.x, (gint) event->button.y, event->button.time); - + knot->grabbed_signal.emit(knot, event->button.state); consumed = TRUE; } break; @@ -449,6 +451,7 @@ void SPKnot::updateCtrl() { g_object_set(this->item, "shape", this->shape, NULL); g_object_set(this->item, "mode", this->mode, NULL); g_object_set(this->item, "size", (gdouble) this->size, NULL); + g_object_set(this->item, "angle", this->angle, NULL); g_object_set(this->item, "anchor", this->anchor, NULL); if (this->pixbuf) { @@ -492,6 +495,10 @@ void SPKnot::setPixbuf(gpointer p) { pixbuf = p; } +void SPKnot::setAngle(double i) { + angle = i; +} + void SPKnot::setFill(guint32 normal, guint32 mouseover, guint32 dragging) { fill[SP_KNOT_STATE_NORMAL] = normal; fill[SP_KNOT_STATE_MOUSEOVER] = mouseover; -- cgit v1.2.3 From 5ba49eaa5621b2e232f8df179798a1b2b282890c Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 19 Dec 2016 19:00:54 +0100 Subject: Add update_helperpaths not member of nodetool class to easy call from outside (bzr r15335) --- src/knot.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 8ac84b97b..84b72d780 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -25,8 +25,6 @@ #include "document-undo.h" #include "message-stack.h" #include "message-context.h" -#include "ui/tools-switch.h" -#include "ui/tools/tool-base.h" #include "ui/tools/node-tool.h" #include @@ -254,10 +252,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot consumed = TRUE; } } - if (tools_isactive(knot->desktop, TOOLS_NODES)) { - Inkscape::UI::Tools::NodeTool *nt = static_cast(knot->desktop->event_context); - nt->update_helperpath(); - } + Inkscape::UI::Tools::sp_update_helperpath(); break; case GDK_MOTION_NOTIFY: if (grabbed && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) { @@ -290,10 +285,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot sp_knot_handler_request_position(event, knot); moved = TRUE; } - if (tools_isactive(knot->desktop, TOOLS_NODES)) { - Inkscape::UI::Tools::NodeTool *nt = static_cast(knot->desktop->event_context); - nt->update_helperpath(); - } + Inkscape::UI::Tools::sp_update_helperpath(); break; case GDK_ENTER_NOTIFY: knot->setFlag(SP_KNOT_MOUSEOVER, TRUE); -- cgit v1.2.3 From ae81ebccd8772a35c4e68e69a23c93c42b63c87c Mon Sep 17 00:00:00 2001 From: Jabiertxof Date: Thu, 29 Dec 2016 05:26:27 +0100 Subject: Fix for bug #1652954 Title: Critical warning when dragging a selection handle Affect to trunk(r15238) and 0.92(r15293). Not affect 0.91 Bug: When trying to transform an element we recibe a critical warning, this commit fix it Why: The knot fire two timed the grabber event. Originaly this not happends but in r15238 we add again this event to update triangle knots on click, not only on move. Fix: Remove the original knot grabb event fired after the click event that now is who marck a knot to drag. Fixed bugs: - https://launchpad.net/bugs/1652954 (bzr r15371) --- src/knot.cpp | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 84b72d780..c04206dee 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -276,8 +276,6 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot } if (!moved) { - knot->grabbed_signal.emit(knot, event->motion.state); - knot->setFlag(SP_KNOT_DRAGGING, TRUE); } -- cgit v1.2.3