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

Skip to content

Commit 534077d

Browse files
authored
Merge pull request #24250 from QuLogic/pick-event
Fix key reporting in pick events
2 parents b298423 + 9b34b25 commit 534077d

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

lib/matplotlib/figure.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2445,10 +2445,6 @@ def __init__(self,
24452445
# pickling.
24462446
self._canvas_callbacks = cbook.CallbackRegistry(
24472447
signals=FigureCanvasBase.events)
2448-
self._button_pick_id = self._canvas_callbacks._connect_picklable(
2449-
'button_press_event', self.pick)
2450-
self._scroll_pick_id = self._canvas_callbacks._connect_picklable(
2451-
'scroll_event', self.pick)
24522448
connect = self._canvas_callbacks._connect_picklable
24532449
self._mouse_key_ids = [
24542450
connect('key_press_event', backend_bases._key_handler),
@@ -2459,6 +2455,8 @@ def __init__(self,
24592455
connect('scroll_event', backend_bases._mouse_handler),
24602456
connect('motion_notify_event', backend_bases._mouse_handler),
24612457
]
2458+
self._button_pick_id = connect('button_press_event', self.pick)
2459+
self._scroll_pick_id = connect('scroll_event', self.pick)
24622460

24632461
if figsize is None:
24642462
figsize = mpl.rcParams['figure.figsize']

lib/matplotlib/tests/test_backend_bases.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from matplotlib import path, transforms
44
from matplotlib.backend_bases import (
5-
FigureCanvasBase, LocationEvent, MouseButton, MouseEvent,
5+
FigureCanvasBase, KeyEvent, LocationEvent, MouseButton, MouseEvent,
66
NavigationToolbar2, RendererBase)
77
from matplotlib.backend_tools import RubberbandBase
88
from matplotlib.figure import Figure
@@ -124,12 +124,18 @@ def test_pick():
124124
fig = plt.figure()
125125
fig.text(.5, .5, "hello", ha="center", va="center", picker=True)
126126
fig.canvas.draw()
127+
127128
picks = []
128-
fig.canvas.mpl_connect("pick_event", lambda event: picks.append(event))
129-
start_event = MouseEvent(
130-
"button_press_event", fig.canvas, *fig.transFigure.transform((.5, .5)),
131-
MouseButton.LEFT)
132-
fig.canvas.callbacks.process(start_event.name, start_event)
129+
def handle_pick(event):
130+
assert event.mouseevent.key == "a"
131+
picks.append(event)
132+
fig.canvas.mpl_connect("pick_event", handle_pick)
133+
134+
KeyEvent("key_press_event", fig.canvas, "a")._process()
135+
MouseEvent("button_press_event", fig.canvas,
136+
*fig.transFigure.transform((.5, .5)),
137+
MouseButton.LEFT)._process()
138+
KeyEvent("key_release_event", fig.canvas, "a")._process()
133139
assert len(picks) == 1
134140

135141

0 commit comments

Comments
 (0)