Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 71e54b5

Browse files
committed
Store prev event to handle out of bounds selections
1 parent 8c4626f commit 71e54b5

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

lib/matplotlib/widgets.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,6 +1118,7 @@ def __init__(self, ax, onselect, useblit=False, button=None):
11181118
self.eventpress = None
11191119
# will save the data (pos. at mouserelease)
11201120
self.eventrelease = None
1121+
self._prev_event = None
11211122

11221123
def set_active(self, active):
11231124
AxesWidget.set_active(self, active)
@@ -1204,6 +1205,7 @@ def press(self, event):
12041205
"""Button press handler"""
12051206
if not self.ignore(event):
12061207
self.eventpress = copy.copy(event)
1208+
self._prev_event = copy.copy(event)
12071209
self.eventpress.xdata, self.eventpress.ydata = (
12081210
self._get_data(event))
12091211
return True
@@ -1212,16 +1214,25 @@ def press(self, event):
12121214
def release(self, event):
12131215
"""Button release event"""
12141216
if not self.ignore(event) and self.eventpress is not None:
1217+
if event.xdata is None:
1218+
event = copy.copy(self._prev_event)
12151219
self.eventrelease = copy.copy(event)
12161220
self.eventrelease.xdata, self.eventrelease.ydata = (
12171221
self._get_data(event))
1218-
return True
1222+
return event
12191223
else:
1220-
return False
1224+
return None
12211225

12221226
def onmove(self, event):
12231227
"""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
12251236

12261237
def on_scroll(self, event):
12271238
"""Mouse scroll event"""

0 commit comments

Comments
 (0)