From c4aa590bedcf358acf15bdf0d8134ae99e3be167 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 23 Jan 2010 14:36:56 +0100 Subject: Remove redundancy from snapping API (type of snapsource no longer has to be specified explicitly) (bzr r9014) --- src/star-context.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/star-context.cpp') diff --git a/src/star-context.cpp b/src/star-context.cpp index 3d6825e31..f67ca434d 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -259,9 +259,7 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent /* Snap center */ SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop, true); - Geom::Point pt2g = to_2geom(sc->center); - m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g, Inkscape::SNAPSOURCE_HANDLE); - sc->center = from_2geom(pt2g); + m.freeSnapReturnByRef(sc->center, Inkscape::SNAPSOURCE_NODE_HANDLE); sp_canvas_item_grab(SP_CANVAS_ITEM(desktop->acetate), GDK_KEY_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | @@ -437,7 +435,7 @@ static void sp_star_drag(SPStarContext *sc, Geom::Point p, guint state) SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop, true, sc->item); Geom::Point pt2g = to_2geom(p); - m.freeSnapReturnByRef(Inkscape::SnapPreferences::SNAPPOINT_NODE, pt2g, Inkscape::SNAPSOURCE_HANDLE); + m.freeSnapReturnByRef(pt2g, Inkscape::SNAPSOURCE_NODE_HANDLE); Geom::Point const p0 = desktop->dt2doc(sc->center); Geom::Point const p1 = desktop->dt2doc(pt2g); -- cgit v1.2.3 From e52fb9fac3f1bbd924c0ca3b6b5e214a095d44af Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 30 Jan 2010 23:04:33 +0100 Subject: Finally introducing the pre-snap indicator (bzr r9034) --- src/star-context.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'src/star-context.cpp') diff --git a/src/star-context.cpp b/src/star-context.cpp index f67ca434d..693d51888 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -291,6 +291,13 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent gobble_motion_events(GDK_BUTTON1_MASK); ret = TRUE; + } else if (sp_event_context_knot_mouseover(event_context)) { + SnapManager &m = desktop->namedview->snap_manager; + m.setup(desktop); + + Geom::Point const motion_w(event->motion.x, event->motion.y); + Geom::Point motion_dt(desktop->w2d(motion_w)); + m.preSnap(Inkscape::SnapCandidatePoint(motion_dt, Inkscape::SNAPSOURCE_NODE_HANDLE)); } break; case GDK_BUTTON_RELEASE: @@ -472,13 +479,13 @@ sp_star_finish (SPStarContext * sc) sc->_message_context->clear(); if (sc->item != NULL) { - SPStar *star = SP_STAR(sc->item); - if (star->r[1] == 0) { - sp_star_cancel(sc); // Don't allow the creating of zero sized arc, for example when the start and and point snap to the snap grid point - return; - } + SPStar *star = SP_STAR(sc->item); + if (star->r[1] == 0) { + sp_star_cancel(sc); // Don't allow the creating of zero sized arc, for example when the start and and point snap to the snap grid point + return; + } - SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; + SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; SPObject *object = SP_OBJECT(sc->item); sp_shape_set_shape(SP_SHAPE(sc->item)); @@ -497,14 +504,14 @@ sp_star_finish (SPStarContext * sc) static void sp_star_cancel(SPStarContext *sc) { - SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; + SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; - sp_desktop_selection(desktop)->clear(); - sp_canvas_item_ungrab(SP_CANVAS_ITEM(desktop->acetate), 0); + sp_desktop_selection(desktop)->clear(); + sp_canvas_item_ungrab(SP_CANVAS_ITEM(desktop->acetate), 0); if (sc->item != NULL) { - SP_OBJECT(sc->item)->deleteObject(); - sc->item = NULL; + SP_OBJECT(sc->item)->deleteObject(); + sc->item = NULL; } sc->within_tolerance = false; -- cgit v1.2.3 From 195208c56145d9b9673aff0bb2f8795f5bc6fe22 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Sat, 6 Feb 2010 15:59:28 +0100 Subject: Tiny bit of refactoring (inverting some logic) (bzr r9059) --- src/star-context.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/star-context.cpp') diff --git a/src/star-context.cpp b/src/star-context.cpp index 693d51888..4d5d9780c 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -291,7 +291,7 @@ static gint sp_star_context_root_handler(SPEventContext *event_context, GdkEvent gobble_motion_events(GDK_BUTTON1_MASK); ret = TRUE; - } else if (sp_event_context_knot_mouseover(event_context)) { + } else if (!sp_event_context_knot_mouseover(event_context)) { SnapManager &m = desktop->namedview->snap_manager; m.setup(desktop); -- cgit v1.2.3 From e0ce1a8cc7e364bf5122811785e41f11788be1d7 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Thu, 18 Mar 2010 03:20:09 +0100 Subject: Set transform center so that odd stars and polygons rotate correctly. Fixed bugs: - https://launchpad.net/bugs/462157 (bzr r9204) --- src/star-context.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/star-context.cpp') diff --git a/src/star-context.cpp b/src/star-context.cpp index 4d5d9780c..63a15545f 100644 --- a/src/star-context.cpp +++ b/src/star-context.cpp @@ -485,6 +485,10 @@ sp_star_finish (SPStarContext * sc) return; } + // Set transform center, so that odd stars rotate correctly + // LP #462157 + sc->item->setCenter(sc->center); + SPDesktop *desktop = SP_EVENT_CONTEXT(sc)->desktop; SPObject *object = SP_OBJECT(sc->item); -- cgit v1.2.3