From c01e948139bc808ce9ff707e1793d00959400fda Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Tue, 17 Apr 2012 18:55:14 -0300 Subject: [PATCH] Fixed bug 670 - Draft grid doesn't work in more than one viewport --- src/Mod/Draft/DraftSnap.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Mod/Draft/DraftSnap.py b/src/Mod/Draft/DraftSnap.py index 8aee49b09..caeeb5bed 100644 --- a/src/Mod/Draft/DraftSnap.py +++ b/src/Mod/Draft/DraftSnap.py @@ -73,6 +73,7 @@ class Snapper: self.trackLine = None self.lastSnappedObject = None self.active = True + self.trackers = [[],[],[],[]] # view, grid, snap, extline self.polarAngles = [90,45] @@ -142,12 +143,20 @@ class Snapper: return None # setup trackers if needed - if not self.tracker: - self.tracker = DraftTrackers.snapTracker() - if not self.extLine: - self.extLine = DraftTrackers.lineTracker(dotted=True) - if (not self.grid) and Draft.getParam("grid"): + v = Draft.get3DView() + if v in self.trackers[0]: + i = self.trackers[0].index(v) + self.grid = self.trackers[1][i] + self.tracker = self.trackers[2][i] + self.extLine = self.trackers[3][i] + else: self.grid = DraftTrackers.gridTracker() + self.tracker = DraftTrackers.snapTracker() + self.extLine = DraftTrackers.lineTracker(dotted=True) + self.trackers[0].append(v) + self.trackers[1].append(self.grid) + self.trackers[2].append(self.tracker) + self.trackers[3].append(self.extLine) # getting current snap Radius if not self.radius: @@ -599,7 +608,7 @@ class Snapper: for v in self.views: v.setCursor(cur) self.cursorMode = mode - + def off(self): "finishes snapping" if self.tracker: