All pastes #125402 Raw Edit

Anonymous

public text v1 · immutable
·published 2006-08-10 16:44 UTC
rendered paste body
Index: gsteditorcanvas.py
===================================================================
--- gsteditorcanvas.py  (revision 35)
+++ gsteditorcanvas.py  (working copy)
@@ -71,22 +71,20 @@
                 
                 #now watch for these events so we can catch 
                 self.linkHandlers = list()
-                handler = self.connect("motion_notify_event", self._doDrag)
+                handler = view.connect("motion_notify_event", self._doDrag)
                 self.linkHandlers.append(handler)
-                handler = self.connect("button_release_event", self._stopDrag)
-                self.linkHandlers.append(handler)
                 
         print "handled drag"
         return False
         
         
-    def _doDrag(self, view, event):
+    def _doDrag(self, view, target, event):
         "update link end point" 
         if self.currentLink:
-            print "dragging"
+            print "dragging", event.x, event.y
             return True
             
-    def _stopDrag(self, view, event):
+    def _stopDrag(self, view, target, event):
         "attaches or destroys a link when user lets go of mouse"
 ##        if self.currentLink:
 ##            #if it's over a pad, try to connect
@@ -99,7 +97,7 @@
 ##            
         while len(self.linkHandlers):
             link = self.linkHandlers.pop()
-            self.disconnect(link)
+            view.disconnect(link)
             print "removed link" + str(link)
         
         return True
@@ -155,6 +153,10 @@
             
             sig = itemview.connect("button_press_event", self._startDrag)
             self.newelement.signals.append((itemview, sig))
+
+            # you don't do release events very often, we can put it from the start
+            sig = itemview.connect("button_release_event", self._stopDrag)
+            self.newelement.signals.append((itemview, sig))
             
             
         if item.get_data("item_type") == "element":
@@ -165,4 +167,4 @@
             self.newelement.signals.append((itemview, sig))
             
             sig = itemview.connect("button_release_event", self.newelement.onButtonRelease)
-            self.newelement.signals.append((itemview, sig))
\ No newline at end of file
+            self.newelement.signals.append((itemview, sig))