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

Skip to content

Commit e22adcd

Browse files
authored
Merge pull request #24255 from meeseeksmachine/auto-backport-of-pr-24250-on-v3.6.x
Backport PR #24250 on branch v3.6.x (Fix key reporting in pick events)
2 parents d7f7b96 + 5c661e3 commit e22adcd

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
@@ -2443,10 +2443,6 @@ def __init__(self,
24432443
# pickling.
24442444
self._canvas_callbacks = cbook.CallbackRegistry(
24452445
signals=FigureCanvasBase.events)
2446-
self._button_pick_id = self._canvas_callbacks._connect_picklable(
2447-
'button_press_event', self.pick)
2448-
self._scroll_pick_id = self._canvas_callbacks._connect_picklable(
2449-
'scroll_event', self.pick)
24502446
connect = self._canvas_callbacks._connect_picklable
24512447
self._mouse_key_ids = [
24522448
connect('key_press_event', backend_bases._key_handler),
@@ -2457,6 +2453,8 @@ def __init__(self,
24572453
connect('scroll_event', backend_bases._mouse_handler),
24582454
connect('motion_notify_event', backend_bases._mouse_handler),
24592455
]
2456+
self._button_pick_id = connect('button_press_event', self.pick)
2457+
self._scroll_pick_id = connect('scroll_event', self.pick)
24602458

24612459
if figsize is None:
24622460
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)