daboide Commit
Revision 641
Date: 2006-09-30 06:50:22 -0700 (Sat, 30 Sep 2006)
Author: ed

Changed:
U   trunk/ClassDesignerFormMixin.py

Log:
More fixes for the behaviors when working with controls nested inside of panels 
in the Designer. Marquee selection now works, and so does multiple item moving 
and sizing.


Diff:
Modified: trunk/ClassDesignerFormMixin.py
===================================================================
--- trunk/ClassDesignerFormMixin.py     2006-09-29 02:10:33 UTC (rev 640)
+++ trunk/ClassDesignerFormMixin.py     2006-09-30 13:50:22 UTC (rev 641)
@@ -869,24 +869,26 @@
                drobj = self._draggedObjects
                dabo.ui.callAfter(self._clearDraggedObjects)
                if self._selecting:
+                       mp = evt.mousePosition
+                       ac = self.ActiveContainer
                        # Clear the marquee
                        self.drawMarquee(self._dragDrawPos)
                        self._selecting = False
                        origPos = self._dragOrigPos
                        if obj:
-                               endPos = obj.formCoordinates(evt.mousePosition)
+                               endPos = obj.containerCoordinates(ac, mp)
                        else:
-                               endPos = evt.mousePosition
+                               endPos = mp
                        
                        # Was there a selected class?
                        cls = self.app.SelectedClass
                        if cls is not None:
-                               self.app.addDrawnClass(cls, 
self.ActiveContainer,
+                               self.app.addDrawnClass(cls, ac,
                                                self._dragOrigPos, 
self._dragDrawPos)
                        else:
                                #self._drawSurface = None
                                # Any selected?
-                               sel = [ctl for ctl in 
self.ActiveContainer.Children
+                               sel = [ctl for ctl in ac.Children
                                                if self.intesects(ctl, origPos, 
endPos)
                                                and not isinstance(ctl, 
DragHandle)]
                                self.selectControl(sel, evt.shiftDown)
@@ -999,8 +1001,10 @@
                ox, oy = self._dragOrigPos
                nx, ny = obj.containerCoordinates(self.ActiveContainer, 
evt.mousePosition)
                dist = abs(nx-ox) + abs(ny-oy)
-               if self._selecting and (dist > 2):
+               wasSelecting = self._selecting
+               if wasSelecting and (dist > 2):
                        self.onLeftUp(evt, obj)
+                       return
                if (self._draggedObjects is not None) and (dist > 2):
                        # We're finishing a drag operation
                        self.app.Selection = self._draggedObjects
@@ -1008,7 +1012,8 @@
                        return
                srcObj = self.DragObject
                if not srcObj:
-                       self.objectClick(obj, evt.shiftDown)
+                       if obj is not self.ActiveContainer or wasSelecting:
+                               self.objectClick(obj, evt.shiftDown)
                else:
                        # Clear the reference
                        self.DragObject = None




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev

Reply via email to