From 917bfbec0fafaa5cf045ba3a5798632a800fb3b7 Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Tue, 2 Feb 2021 15:44:56 +0100 Subject: [PATCH] Replace gtk3 deprecated APIs that have simple replacements. - set_double_buffered (deprecated since gtk3.14) is unnecessary, gtk (even gtk2) defaults to being double-buffered (this line of code comes from the old gtk2 backend which used to disable double buffering). https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-set-double-buffered - gtk_window_get_pointer is deprecated since gtk3.0. https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#gdk-window-get-pointer - get_window_size_request is deprecated since gtk3.0. Also inline add_widget, which is used exactly once. https://developer.gnome.org/gtk3/stable/GtkWidget.html#gtk-widget-size-request --- lib/matplotlib/backends/backend_gtk3.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py index e9e78b43e213..3f769a622586 100644 --- a/lib/matplotlib/backends/backend_gtk3.py +++ b/lib/matplotlib/backends/backend_gtk3.py @@ -124,7 +124,6 @@ def __init__(self, figure): self.set_events(self.__class__.event_mask) - self.set_double_buffered(True) self.set_can_focus(True) renderer_init = _api.deprecate_method_override( @@ -180,7 +179,7 @@ def key_release_event(self, widget, event): def motion_notify_event(self, widget, event): if event.is_hint: - t, x, y, state = event.window.get_pointer() + t, x, y, state = event.window.get_device_position(event.device) else: x, y = event.x, event.y @@ -338,12 +337,6 @@ def __init__(self, canvas, num): self.toolbar = self._get_toolbar() - def add_widget(child): - child.show() - self.vbox.pack_end(child, False, False, 0) - size_request = child.size_request() - return size_request.height - if self.toolmanager: backend_tools.add_tools_to_manager(self.toolmanager) if self.toolbar: @@ -351,7 +344,9 @@ def add_widget(child): if self.toolbar is not None: self.toolbar.show() - h += add_widget(self.toolbar) + self.vbox.pack_end(self.toolbar, False, False, 0) + min_size, nat_size = self.toolbar.get_preferred_size() + h += nat_size.height self.window.set_default_size(w, h)