From a34bd134b0ea919140a2d8eed159b17f626346a5 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Sat, 26 Jul 2014 21:33:39 -0400 Subject: [PATCH] BUG: 3 fixes for widgets (MultiCrusor, SpanSelector, Slider) --- lib/matplotlib/widgets.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/matplotlib/widgets.py b/lib/matplotlib/widgets.py index bef623bb64e0..2e932671d441 100644 --- a/lib/matplotlib/widgets.py +++ b/lib/matplotlib/widgets.py @@ -425,7 +425,7 @@ def set_val(self, val): self.poly.xy = xy self.valtext.set_text(self.valfmt % val) if self.drawon: - self.ax.figure.canvas.draw() + self.ax.figure.canvas.draw_idle() self.val = val if not self.eventson: return @@ -1011,7 +1011,7 @@ def __init__(self, canvas, axes, useblit=True, horizOn=False, vertOn=True, self.background = None self.needclear = False - if useblit: + if self.useblit: lineprops['animated'] = True if vertOn: @@ -1198,6 +1198,9 @@ def update_background(self, event): def ignore(self, event): """return *True* if *event* should be ignored""" + # If canvas was locked + if not self.canvas.widgetlock.available(self): + return True widget_off = not self.visible or not self.active non_event = event.inaxes != self.ax or event.button != 1 return widget_off or non_event