Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5f14f49

Browse files
authored
Merge pull request #9509 from matplotlib/auto-backport-of-pr-9396
Backport PR #9396 on branch v2.1.0-doc
2 parents 4ba4766 + 6a18d6b commit 5f14f49

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

examples/event_handling/poly_editor.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ def draw_callback(self, event):
5959
self.background = self.canvas.copy_from_bbox(self.ax.bbox)
6060
self.ax.draw_artist(self.poly)
6161
self.ax.draw_artist(self.line)
62-
self.canvas.blit(self.ax.bbox)
62+
# do not need to blit here, this will fire before the screen is
63+
# updated
6364

6465
def poly_changed(self, poly):
6566
'this method is called whenever the polygon object is called'
@@ -114,9 +115,8 @@ def key_press_callback(self, event):
114115
elif event.key == 'd':
115116
ind = self.get_ind_under_point(event)
116117
if ind is not None:
117-
self.poly.xy = [tup
118-
for i, tup in enumerate(self.poly.xy)
119-
if i != ind]
118+
self.poly.xy = np.delete(self.poly.xy,
119+
ind, axis=0)
120120
self.line.set_data(zip(*self.poly.xy))
121121
elif event.key == 'i':
122122
xys = self.poly.get_transform().transform(self.poly.xy)
@@ -126,14 +126,14 @@ def key_press_callback(self, event):
126126
s1 = xys[i + 1]
127127
d = dist_point_to_segment(p, s0, s1)
128128
if d <= self.epsilon:
129-
self.poly.xy = np.array(
130-
list(self.poly.xy[:i]) +
131-
[(event.xdata, event.ydata)] +
132-
list(self.poly.xy[i:]))
129+
self.poly.xy = np.insert(
130+
self.poly.xy, i+1,
131+
[event.xdata, event.ydata],
132+
axis=0)
133133
self.line.set_data(zip(*self.poly.xy))
134134
break
135-
136-
self.canvas.draw()
135+
if self.line.stale:
136+
self.canvas.draw_idle()
137137

138138
def motion_notify_callback(self, event):
139139
'on mouse movement'

0 commit comments

Comments
 (0)