From 7e68da8d1bc6a91031fa4a05cc5f8ca032bd960d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sat, 19 Jul 2014 18:06:37 -0400 Subject: Workarounds for crash bugs 1309050, 601336; will fix properly in experimental Fixed bugs: - https://launchpad.net/bugs/601336 - https://launchpad.net/bugs/1309050 (bzr r13455) --- src/knot.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 61d0dff39..a3bb85b2b 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -162,6 +162,9 @@ SPKnot::~SPKnot() { g_free(this->tip); this->tip = NULL; } + + // cannot snap to destroyed knot + sp_event_context_discard_delayed_snap_event(this->desktop->event_context); } void SPKnot::startDragging(Geom::Point const &p, gint x, gint y, guint32 etime) { @@ -282,7 +285,7 @@ static int sp_knot_handler(SPCanvasItem */*item*/, GdkEvent *event, SPKnot *knot knot->setFlag(SP_KNOT_DRAGGING, TRUE); } - sp_event_context_snap_delay_handler(knot->desktop->event_context, NULL, (gpointer) knot, (GdkEventMotion *)event, Inkscape::UI::Tools::DelayedSnapEvent::KNOT_HANDLER); + sp_event_context_snap_delay_handler(knot->desktop->event_context, NULL, knot, (GdkEventMotion *)event, Inkscape::UI::Tools::DelayedSnapEvent::KNOT_HANDLER); sp_knot_handler_request_position(event, knot); moved = TRUE; } -- cgit v1.2.3 From 7fa600b68ac57b425b86cff659e740f97888d05d Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Mon, 21 Jul 2014 15:00:24 -0400 Subject: Revert fix for 1309050 since it causes other regressions... (bzr r13457) --- src/knot.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index a3bb85b2b..2f8f55a2e 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -163,8 +163,8 @@ SPKnot::~SPKnot() { this->tip = NULL; } - // cannot snap to destroyed knot - sp_event_context_discard_delayed_snap_event(this->desktop->event_context); + // FIXME: cannot snap to destroyed knot (lp:1309050) + //sp_event_context_discard_delayed_snap_event(this->desktop->event_context); } void SPKnot::startDragging(Geom::Point const &p, gint x, gint y, guint32 etime) { -- cgit v1.2.3 From 2029349f5291ae10048202732a89f34c0a179130 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 6 Aug 2014 20:40:19 -0400 Subject: Add in some debugging code that will complain when deleted knots are accessed by snap handler (bzr r13341.1.120) --- src/knot.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 2f8f55a2e..6205af26a 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -21,6 +21,7 @@ #include "desktop.h" #include "desktop-handles.h" #include "knot.h" +#include "knot-ptr.h" #include "document.h" #include "document-undo.h" #include "preferences.h" @@ -118,6 +119,7 @@ SPKnot::SPKnot(SPDesktop *desktop, gchar const *tip) this->_event_handler_id = g_signal_connect(G_OBJECT(this->item), "event", G_CALLBACK(sp_knot_handler), this); + knot_created_callback(this); } SPKnot::~SPKnot() { @@ -165,6 +167,7 @@ SPKnot::~SPKnot() { // FIXME: cannot snap to destroyed knot (lp:1309050) //sp_event_context_discard_delayed_snap_event(this->desktop->event_context); + knot_deleted_callback(this); } void SPKnot::startDragging(Geom::Point const &p, gint x, gint y, guint32 etime) { -- cgit v1.2.3 From 977857ef75a45ed1ec79cfdcf0f25dd66d4a7e86 Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Sat, 30 Aug 2014 14:00:28 +0100 Subject: Reduce header bloat (bzr r13341.1.184) --- src/knot.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 6205af26a..49b4dbb54 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -28,6 +28,7 @@ #include "message-stack.h" #include "message-context.h" #include "ui/tools/tool-base.h" +#include using Inkscape::DocumentUndo; -- cgit v1.2.3 From 389581f8c8a49e7cd922a09e0088e1414a7db05b Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Mon, 29 Sep 2014 03:50:36 +0200 Subject: This push add suport to helper paths redraw to nodes, handles and knots. This redraw at mouse movement. Whith knots also redraw at button release event (bzr r13341.1.227) --- src/knot.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 49b4dbb54..4476ad424 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -27,7 +27,9 @@ #include "preferences.h" #include "message-stack.h" #include "message-context.h" +#include "tools-switch.h" #include "ui/tools/tool-base.h" +#include "ui/tools/node-tool.h" #include using Inkscape::DocumentUndo; @@ -261,6 +263,10 @@ 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(); + } break; case GDK_MOTION_NOTIFY: if (grabbed && knot->desktop && knot->desktop->event_context && !knot->desktop->event_context->space_panning) { @@ -293,6 +299,10 @@ 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(); + } break; case GDK_ENTER_NOTIFY: knot->setFlag(SP_KNOT_MOUSEOVER, TRUE); -- cgit v1.2.3 From 156cf3323a936c7dfccd9e09458cd8b5d174b7fe Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Sun, 5 Oct 2014 19:24:27 -0400 Subject: Move more UI code into ui/ (bzr r13341.1.253) --- src/knot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/knot.cpp') diff --git a/src/knot.cpp b/src/knot.cpp index 4476ad424..4118873c1 100644 --- a/src/knot.cpp +++ b/src/knot.cpp @@ -27,7 +27,7 @@ #include "preferences.h" #include "message-stack.h" #include "message-context.h" -#include "tools-switch.h" +#include "ui/tools-switch.h" #include "ui/tools/tool-base.h" #include "ui/tools/node-tool.h" #include -- cgit v1.2.3