From 90a53951b8478ad9dce406dcb49e9fbea586b020 Mon Sep 17 00:00:00 2001 From: Ryan May Date: Fri, 20 Oct 2017 14:34:11 -0600 Subject: [PATCH 1/3] MNT: A bit of clean up for osx backend Remove unused import and simplify a conditional. --- lib/matplotlib/backends/backend_macosx.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/matplotlib/backends/backend_macosx.py b/lib/matplotlib/backends/backend_macosx.py index 802f6ecec5e0..c846aaafad77 100644 --- a/lib/matplotlib/backends/backend_macosx.py +++ b/lib/matplotlib/backends/backend_macosx.py @@ -1,8 +1,6 @@ from __future__ import (absolute_import, division, print_function, unicode_literals) -import six - import os from matplotlib._pylab_helpers import Gcf @@ -99,10 +97,9 @@ def get_renderer(self, cleared=False): def _draw(self): renderer = self.get_renderer() - if not self.figure.stale: - return renderer + if self.figure.stale: + self.figure.draw(renderer) - self.figure.draw(renderer) return renderer def draw(self): From 75aa1430a34756e8bd79f0dd85e4c2c1559146fc Mon Sep 17 00:00:00 2001 From: Ryan May Date: Fri, 20 Oct 2017 14:34:59 -0600 Subject: [PATCH 2/3] BUG: Force osx canvas to flush events on draw() (Fixes #9491) draw() needs to ensure events are flushed before returning, so do so (that's the difference between draw and draw_idle). It turns out flush_event wasn't being used up to this point. --- lib/matplotlib/backends/backend_macosx.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/matplotlib/backends/backend_macosx.py b/lib/matplotlib/backends/backend_macosx.py index c846aaafad77..d06cc34eaa89 100644 --- a/lib/matplotlib/backends/backend_macosx.py +++ b/lib/matplotlib/backends/backend_macosx.py @@ -104,6 +104,7 @@ def _draw(self): def draw(self): self.invalidate() + self.flush_events() def draw_idle(self, *args, **kwargs): self.invalidate() From 619e136d4bca620f99fe11bb60024f8e613c1724 Mon Sep 17 00:00:00 2001 From: Ryan May Date: Fri, 20 Oct 2017 14:36:59 -0600 Subject: [PATCH 3/3] BUG: Set stale when rotating camera in Axes 3D (Fixes #8814) There was nothing to signal stale state before. --- lib/mpl_toolkits/mplot3d/axes3d.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/mpl_toolkits/mplot3d/axes3d.py b/lib/mpl_toolkits/mplot3d/axes3d.py index 46cc540661a3..73385ec91256 100644 --- a/lib/mpl_toolkits/mplot3d/axes3d.py +++ b/lib/mpl_toolkits/mplot3d/axes3d.py @@ -1206,6 +1206,7 @@ def _on_move(self, event): self.elev = art3d.norm_angle(self.elev - (dy/h)*180) self.azim = art3d.norm_angle(self.azim - (dx/w)*180) self.get_proj() + self.stale = True self.figure.canvas.draw_idle() # elif self.button_pressed == 2: