diff --git a/lib/matplotlib/backends/backend_webagg_core.py b/lib/matplotlib/backends/backend_webagg_core.py index ceb43ba32808..4c69f50092a7 100644 --- a/lib/matplotlib/backends/backend_webagg_core.py +++ b/lib/matplotlib/backends/backend_webagg_core.py @@ -190,7 +190,8 @@ def handle_event(self, event): pass elif e_type == 'draw': self.draw() - elif e_type in ('button_press', 'button_release', 'motion_notify'): + elif e_type in ('button_press', 'button_release', 'motion_notify', + 'figure_enter', 'figure_leave'): x = event['x'] y = event['y'] y = self.get_renderer().height - y @@ -212,6 +213,10 @@ def handle_event(self, event): self.button_release_event(x, y, button) elif e_type == 'motion_notify': self.motion_notify_event(x, y) + elif e_type == 'figure_enter': + self.enter_notify_event(xy=(x, y)) + elif e_type == 'figure_leave': + self.leave_notify_event() elif e_type in ('key_press', 'key_release'): key = event['key'] diff --git a/lib/matplotlib/backends/web_backend/mpl.js b/lib/matplotlib/backends/web_backend/mpl.js index 6d6a1f3a4e59..f64ff0b4e374 100644 --- a/lib/matplotlib/backends/web_backend/mpl.js +++ b/lib/matplotlib/backends/web_backend/mpl.js @@ -125,6 +125,9 @@ mpl.figure.prototype._init_canvas = function() { // Throttle sequential mouse events to 1 every 20ms. rubberband.mousemove('motion_notify', mouse_event_fn); + rubberband.mouseenter('figure_enter', mouse_event_fn); + rubberband.mouseleave('figure_leave', mouse_event_fn); + canvas_div.append(canvas); canvas_div.append(rubberband);