8000 Merge pull request #24250 from QuLogic/pick-event · matplotlib/matplotlib@534077d · GitHub
[go: up one dir, main page]

Skip to content

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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)
0