rendered paste bodyIndex: 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))