@@ -1118,6 +1118,7 @@ def __init__(self, ax, onselect, useblit=False, button=None):
1118
1118
self .eventpress = None
1119
1119
# will save the data (pos. at mouserelease)
1120
1120
self .eventrelease = None
1121
+ self ._prev_event = None
1121
1122
1122
1123
def set_active (self , active ):
1123
1124
AxesWidget .set_active (self , active )
@@ -1204,6 +1205,7 @@ def press(self, event):
1204
1205
"""Button press handler"""
1205
1206
if not self .ignore (event ):
1206
1207
self .eventpress = copy .copy (event )
1208
+ self ._prev_event = copy .copy (event )
1207
1209
self .eventpress .xdata , self .eventpress .ydata = (
1208
1210
self ._get_data (event ))
1209
1211
return True
@@ -1212,16 +1214,25 @@ def press(self, event):
1212
1214
def release (self , event ):
1213
1215
"""Button release event"""
1214
1216
if not self .ignore (event ) and self .eventpress is not None :
1217
+ if event .xdata is None :
1218
+ event = copy .copy (self ._prev_event )
1215
1219
self .eventrelease = copy .copy (event )
1216
1220
self .eventrelease .xdata , self .eventrelease .ydata = (
1217
1221
self ._get_data (event ))
1218
- return True
1222
+ return event
1219
1223
else :
1220
- return False
1224
+ return None
1221
1225
1222
1226
def onmove (self , event ):
1223
1227
"""Cursor move event"""
1224
- pass
1228
+ if not self .ignore (event ) and self .eventpress is not None :
1229
+ if event .xdata is None :
1230
+ event = copy .copy (self ._prev_event )
1231
+ else :
1232
+ self ._prev_event = copy .copy (event )
1233
+ return event
1234
+ else :
1235
+ return False
1225
1236
1226
1237
def on_scroll (self , event ):
1227
1238
"""Mouse scroll event"""
0 commit comments