8000 API: forward figure resize to the manager · matplotlib/matplotlib@0d817d0 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0d817d0

Browse files
committed
API: forward figure resize to the manager
Do not re-forward in calls to `set_size_inches` generated via callbacks in the GUI backends. This pevents 'jumping' as the window is resized with the mouse. closes #4680
1 parent 696ff9f commit 0d817d0

File tree

10 files changed

+11
-11
lines changed

10 files changed

+11
-11
lines changed

lib/matplotlib/backends/backend_cocoaagg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ def updatePlot(self):
178178
def windowDidResize_(self, sender):
179179
w,h = self.bounds().size
180180
dpi = self.canvas.figure.dpi
181-
self.canvas.figure.set_size_inches(w / dpi, h / dpi)
181+
self.canvas.figure.set_size_inches(w / dpi, h / dpi, forward=False)
182182
self.canvas.draw()
183183
self.updatePlot()
184184

lib/matplotlib/backends/backend_gtk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ def configure_event(self, widget, event):
355355

356356
# resize the figure (in inches)
357357
dpi = self.figure.dpi
358-
self.figure.set_size_inches (w/dpi, h/dpi)
358+
self.figure.set_size_inches(w/dpi, h/dpi, forward=False)
359359
self._need_redraw = True
360360

361361
return False # finish event propagation?

lib/matplotlib/backends/backend_gtk3.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ def size_allocate(self, widget, allocation):
285285
dpival = self.figure.dpi
286286
winch = allocation.width / dpival
287287
hinch = allocation.height / dpival
288-
self.figure.set_size_inches(winch, hinch)
288+
self.figure.set_size_inches(winch, hinch, forward=False)
289289
FigureCanvasBase.resize_event(self)
290290
self.draw_idle()
291291

@@ -318,7 +318,7 @@ def configure_event(self, widget, event):
318318

319319
# resize the figure (in inches)
320320
dpi = self.figure.dpi
321-
self.figure.set_size_inches (w/dpi, h/dpi)
321+
self.figure.set_size_inches(w/dpi, h/dpi, forward=False)
322322
self._need_redraw = True
323323

324324
return False # finish event propagation?

lib/matplotlib/backends/backend_gtkagg.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def configure_event(self, widget, event=None):
7575
dpival = self.figure.dpi
7676
winch = w/dpival
7777
hinch = h/dpival
78-
self.figure.set_size_inches(winch, hinch)
78+
self.figure.set_size_inches(winch, hinch, forward=False)
7979
self._need_redraw = True
8080
self.resize_event()
8181
if DEBUG: print('FigureCanvasGTKAgg.configure_event end')

lib/matplotlib/backends/backend_macosx.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,7 +322,7 @@ def resize(self, width, height):
322322
dpi = self.figure.dpi
323323
width /= dpi
324324
height /= dpi
325-
self.figure.set_size_inches(width, height)
325+
self.figure.set_size_inches(width, height, forward=False)
326326
FigureCanvasBase.resize_event(self)
327327

328328
def _print_bitmap(self, filename, *args, **kwargs):

lib/matplotlib/backends/backend_qt5.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ def resizeEvent(self, event):
331331
dpival = self.figure.dpi
332332
winch = w / dpival
333333
hinch = h / dpival
334-
self.figure.set_size_inches(winch, hinch)
334+
self.figure.set_size_inches(winch, hinch, forward=False)
335335
FigureCanvasBase.resize_event(self)
336336
self.draw_idle()
337337
QtWidgets.QWidget.resizeEvent(self, event)

lib/matplotlib/backends/backend_tkagg.py

Lines changed: 1 addition & 1 deletion 6D4E
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ def resize(self, event):
272272
dpival = self.figure.dpi
273273
winch = width/dpival
274274
hinch = height/dpival
275-
self.figure.set_size_inches(winch, hinch)
275+
self.figure.set_size_inches(winch, hinch, forward=False)
276276

277277

278278
self._tkcanvas.delete(self._tkphoto)

lib/matplotlib/backends/backend_webagg_core.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -346,7 +346,7 @@ def handle_resize(self, event):
346346
x, y = int(x), int(y)
347347
fig = self.figure
348348
# An attempt at approximating the figure size in pixels.
349-
fig.set_size_inches(x / fig.dpi, y / fig.dpi)
349+
fig.set_size_inches(x / fig.dpi, y / fig.dpi, forward=False)
350350

351351
_, _, w, h = self.figure.bbox.bounds
352352
# Acknowledge the resize, and force the viewer to update the

lib/matplotlib/backends/backend_wx.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -985,7 +985,7 @@ def _onSize(self, evt):
985985
dpival = self.figure.dpi
986986
winch = self._width / dpival
987987
hinch = self._height / dpival
988-
self.figure.set_size_inches(winch, hinch)
988+
self.figure.set_size_inches(winch, hinch, forward=False)
989989

990990
# Rendering will happen on the associated paint event
991991
# so no need to do anything here except to make sure

lib/matplotlib/figure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -667,7 +667,7 @@ def figimage(self, X,
667667
self.stale = True
668668
return im
669669

670-
def set_size_inches(self, w, h=None, forward=False):
670+
def set_size_inches(self, w, h=None, forward=True):
671671
"""
672672
set_size_inches(w,h, forward=False)
673673

0 commit comments

Comments
 (0)
0