@@ -549,9 +549,10 @@ class Event:
549
549
canvas # the FigureCanvas instance generating the event
550
550
551
551
"""
552
- def __init__ (self , name , canvas ):
552
+ def __init__ (self , name , canvas , guiEvent = None ):
553
553
self .name = name
554
554
self .canvas = canvas
555
+ self .guiEvent = guiEvent
555
556
556
557
class LocationEvent (Event ):
557
558
"""
@@ -574,12 +575,12 @@ class LocationEvent(Event):
574
575
xdata = None # x coord of mouse in data coords
575
576
ydata = None # y coord of mouse in data coords
576
577
577
- def __init__ (self , name , canvas , x , y ):
578
+ def __init__ (self , name , canvas , x , y , guiEvent = None ):
578
579
"""
579
580
x, y in figure coords, 0,0 = bottom, left
580
581
button pressed None, 1, 2, 3
581
582
"""
582
- Event .__init__ (self , name , canvas )
583
+ Event .__init__ (self , name , canvas , guiEvent = guiEvent )
583
584
self .x = x
584
585
self .y = y
585
586
@@ -627,12 +628,13 @@ class MouseEvent(LocationEvent):
627
628
xdata = None # x coord of mouse in data coords
628
629
ydata = None # y coord of mouse in data coords
629
630
630
- def __init__ (self , name , canvas , x , y , button = None , key = None ):
631
+ def __init__ (self , name , canvas , x , y , button = None , key = None ,
632
+ guiEvent = None ):
631
633
"""
632
634
x, y in figure coords, 0,0 = bottom, left
633
635
button pressed None, 1, 2, 3
634
636
"""
635
- LocationEvent .__init__ (self , name , canvas , x , y )
637
+ LocationEvent .__init__ (self , name , canvas , x , y , guiEvent = guiEvent )
636
638
self .button = button
637
639
self .key = key
638
640
@@ -656,8 +658,8 @@ class KeyEvent(LocationEvent):
656
658
This interface may change slightly when better support for
657
659
modifier keys is included
658
660
"""
659
- def __init__ (self , name , canvas , key , x = 0 , y = 0 ):
660
- LocationEvent .__init__ (self , name , canvas , x , y )
661
+ def __init__ (self , name , canvas , key , x = 0 , y = 0 , guiEvent = None ):
662
+ LocationEvent .__init__ (self , name , canvas , x , y , guiEvent = guiEvent )
661
663
self .key = key
662
664
663
665
class FigureCanvasBase :
@@ -688,49 +690,49 @@ def __init__(self, figure):
688
690
self ._key = None # the key pressed
689
691
self ._lastx , self ._lasty = None , None
690
692
691
- def key_press_event (self , key ):
693
+ def key_press_event (self , key , guiEvent = None ):
692
694
self ._key = key
693
- event = KeyEvent ('key_press_event' , self , key , self ._lastx , self ._lasty )
695
+ event = KeyEvent ('key_press_event' , self , key , self ._lastx , self ._lasty , guiEvent = guiEvent )
694
696
for cid , func in self .callbacks .get ('key_press_event' , {}).items ():
695
697
func (event )
696
698
697
- def key_release_event (self , key ):
698
- event = KeyEvent ('key_release_event' , self , key , self ._lastx , self ._lasty )
699
+ def key_release_event (self , key , guiEvent = None ):
700
+ event = KeyEvent ('key_release_event' , self , key , self ._lastx , self ._lasty , guiEvent = guiEvent )
699
701
for cid , func in self .callbacks .get ('key_release_event' , {}).items ():
700
702
func (event )
701
703
self ._key = None
702
704
703
- def button_press_event (self , x , y , button ):
705
+ def button_press_event (self , x , y , button , guiEvent = None ):
704
706
"""
705
707
Backend derived classes should call this function on any mouse
706
708
button press. x,y are the canvas coords: 0,0 is lower, left.
707
709
button and key are as defined in MouseEvent
708
710
"""
709
711
self ._button = button
710
- event = MouseEvent ('button_press_event' , self , x , y , button , self ._key )
712
+ event = MouseEvent ('button_press_event' , self , x , y , button , self ._key , guiEvent = guiEvent )
711
713
for cid , func in self .callbacks .get ('button_press_event' , {}).items ():
712
714
func (event )
713
715
714
- def button_release_event (self , x , y , button ):
716
+ def button_release_event (self , x , y , button , guiEvent = None ):
715
717
"""
716
718
Backend derived classes should call this function on any mouse
717
719
button release. x,y are the canvas coords: 0,0 is lower, left.
718
720
button and key are as defined in MouseEvent
719
721
"""
720
722
721
- event = MouseEvent ('button_release_event' , self , x , y , button , self ._key)
723
+ event = MouseEvent ('button_release_event' , self , x , y , button , self ._key , guiEvent = guiEvent )
722
724
for cid , func in self .callbacks .get ('button_release_event' , {}).items ():
723
725
func (event )
724
726
self ._button = None
725
727
726
- def motion_notify_event (self , x , y ):
728
+ def motion_notify_event (self , x , y , guiEvent = None ):
727
729
"""
728
730
Backend derived classes should call this function on any mouse
729
731
button release. x,y are the canvas coords: 0,0 is lower, left.
730
732
button and key are as defined in MouseEvent
731
733
"""
732
734
self ._lastx , self ._lasty = x , y
733
- event = MouseEvent ('motion_notify_event' , self , x , y , self ._button , self ._key )
735
+ event = MouseEvent ('motion_notify_event' , self , x , y , self ._button , self ._key , guiEvent = guiEvent )
734
736
for cid , func in self .callbacks .get ('motion_notify_event' , {}).items ():
735
737
func (event )
736
738
0 commit comments