From 731a203a18d1028cefeea2bb19aa727149e0a4c4 Mon Sep 17 00:00:00 2001 From: Maximilian Albert Date: Sat, 1 Sep 2007 23:36:14 +0000 Subject: Decent support for setting the direction of infinite VPs via the toolbar and partial fix for wrong undo behaviour (?) (bzr r3659) --- src/vanishing-point.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/vanishing-point.cpp') diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index 2426c9954..f5e98face 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -270,6 +270,8 @@ vp_knot_grabbed_handler (SPKnot *knot, unsigned int state, gpointer data) VPDragger *dragger = (VPDragger *) data; VPDrag *drag = dragger->parent; + drag->dragging = true; + //sp_canvas_force_full_redraw_after_interruptions(dragger->parent->desktop->canvas, 5); if ((state & GDK_SHIFT_MASK) && !drag->hasEmptySelection()) { // FIXME: Is the second check necessary? @@ -369,7 +371,13 @@ vp_knot_ungrabbed_handler (SPKnot *knot, guint state, gpointer data) // TODO: Update box's paths and svg representation + dragger->parent->dragging = false; + // TODO: Undo machinery!! + g_return_if_fail (dragger->parent); + g_return_if_fail (dragger->parent->document); + sp_document_done(dragger->parent->document, SP_VERB_CONTEXT_3DBOX, + _("3D box: Move vanishing point")); } VPDragger::VPDragger(VPDrag *parent, NR::Point p, VanishingPoint *vp) @@ -613,6 +621,7 @@ VPDrag::VPDrag (SPDocument *document) //this->selected = NULL; this->local_change = false; + this->dragging = false; this->sel_changed_connection = this->selection->connectChanged( sigc::bind ( @@ -676,6 +685,8 @@ VPDrag::getDraggerFor (VanishingPoint const &vp) void VPDrag::updateDraggers () { + if (this->dragging) + return; /*** while (selected) { selected = g_list_remove(selected, selected->data); -- cgit v1.2.3