| 58 | | Gdk.EventMask.SCROLL_MASK) |
| 59 | |
| 60 | def __init__(self, figure=None): |
| 61 | super().__init__(figure=figure) |
| 62 | |
| 63 | self._idle_draw_id = 0 |
| 64 | self._rubberband_rect = None |
| 65 | |
| 66 | self.connect('scroll_event', self.scroll_event) |
| 67 | self.connect('button_press_event', self.button_press_event) |
| 68 | self.connect('button_release_event', self.button_release_event) |
| 69 | self.connect('configure_event', self.configure_event) |
| 70 | self.connect('screen-changed', self._update_device_pixel_ratio) |
| 71 | self.connect('notify::scale-factor', self._update_device_pixel_ratio) |
| 72 | self.connect('draw', self.on_draw_event) |
| 73 | self.connect('draw', self._post_draw) |
| 74 | self.connect('key_press_event', self.key_press_event) |
| 75 | self.connect('key_release_event', self.key_release_event) |
| 76 | self.connect('motion_notify_event', self.motion_notify_event) |
| 77 | self.connect('enter_notify_event', self.enter_notify_event) |
| 78 | self.connect('leave_notify_event', self.leave_notify_event) |
| 79 | self.connect('size_allocate', self.size_allocate) |
| 80 | |
| 81 | self.set_events(self.__class__.event_mask) |
| 82 | |
| 83 | self.set_can_focus(True) |
| 84 | |
| 85 | css = Gtk.CssProvider() |
| 86 | css.load_from_data(b".matplotlib-canvas { background-color: white; }") |
| 87 | style_ctx = self.get_style_context() |
| 88 | style_ctx.add_provider(css, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION) |
| 89 | style_ctx.add_class("matplotlib-canvas") |
| 90 | |
| 91 | def destroy(self): |
| 92 | CloseEvent("close_event", self)._process() |