@@ -1367,6 +1367,8 @@ class MouseButton(IntEnum):
13671367 LEFT = 1
13681368 MIDDLE = 2
13691369 RIGHT = 3
1370+ BACK = 8
1371+ FORWARD = 9
13701372
13711373
13721374class MouseEvent (LocationEvent ):
@@ -2386,6 +2388,18 @@ def _get_uniform_gridstate(ticks):
23862388 a .set_navigate (i == n )
23872389
23882390
2391+ def button_press_handler (event , canvas , toolbar = None ):
2392+ """
2393+ The default Matplotlib button actions for extra mouse buttons.
2394+ """
2395+ if toolbar is not None :
2396+ button_name = str (MouseButton (event .button ))
2397+ if button_name in rcParams ['keymap.back' ]:
2398+ toolbar .back ()
2399+ elif button_name in rcParams ['keymap.forward' ]:
2400+ toolbar .forward ()
2401+
2402+
23892403class NonGuiException (Exception ):
23902404 pass
23912405
@@ -2403,22 +2417,34 @@ class FigureManagerBase(object):
24032417 The figure number
24042418
24052419 key_press_handler_id : int
2406- The default key handler cid, when using the toolmanager. Can be used
2407- to disable default key press handling ::
2420+ The default key handler cid, when using the toolmanager.
2421+ To disable the default key press handling use ::
24082422
24092423 figure.canvas.mpl_disconnect(
24102424 figure.canvas.manager.key_press_handler_id)
2425+
2426+ button_press_handler_id : int
2427+ The default mouse button handler cid, when using the toolmanager.
2428+ To disable the default button press handling use::
2429+
2430+ figure.canvas.mpl_disconnect(
2431+ figure.canvas.manager.button_press_handler_id)
2432+
24112433 """
24122434 def __init__ (self , canvas , num ):
24132435 self .canvas = canvas
24142436 canvas .manager = self # store a pointer to parent
24152437 self .num = num
24162438
24172439 self .key_press_handler_id = None
2440+ self .button_press_handler_id = None
24182441 if rcParams ['toolbar' ] != 'toolmanager' :
24192442 self .key_press_handler_id = self .canvas .mpl_connect (
24202443 'key_press_event' ,
24212444 self .key_press )
2445+ self .button_press_handler_id = self .canvas .mpl_connect (
2446+ 'button_press_event' ,
2447+ self .button_press )
24222448
24232449 self .toolmanager = None
24242450 self .toolbar = None
@@ -2455,6 +2481,13 @@ def key_press(self, event):
24552481 if rcParams ['toolbar' ] != 'toolmanager' :
24562482 key_press_handler (event , self .canvas , self .canvas .toolbar )
24572483
2484+ def button_press (self , event ):
2485+ """
2486+ The default Matplotlib button actions for extra mouse buttons.
2487+ """
2488+ if rcParams ['toolbar' ] != 'toolmanager' :
2489+ button_press_handler (event , self .canvas , self .canvas .toolbar )
2490+
24582491 def get_window_title (self ):
24592492 """Get the title text of the window containing the figure.
24602493
0 commit comments