Skip to content

Navigation Menu

Sign in
Appearance settings

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 filesBrowse files
authored
Merge pull request #24250 from QuLogic/pick-event
Fix key reporting in pick events
2 parents b298423 + 9b34b25 commit 534077d
Copy full SHA for 534077d

File tree

2 files changed

+14
-10
lines changed
Filter options

2 files changed

+14
-10
lines changed

‎lib/matplotlib/figure.py

Copy file name to clipboardExpand all lines: lib/matplotlib/figure.py
+2-4Lines 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

Copy file name to clipboardExpand all lines: lib/matplotlib/tests/test_backend_bases.py
+12-6Lines 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)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.