From 869685b9747d48a128fd25ebf93b78324d3eb58a Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 03 Sep 2013 22:55:37 +0000 Subject: fix null index bug --- (limited to 'TurtleArt/tawindow.py') diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index 50691c8..4e55d5b 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -2557,10 +2557,12 @@ before making changes to your Turtle Blocks program')) pos = self.turtles.screen_to_turtle_coordinates((dx, dy)) if self.selected_turtle.get_pen_state(): self.selected_turtle.set_pen_state(False) - self.selected_turtle.set_xy(pos, share=False, dragging=True) + self.selected_turtle.set_xy(*pos, share=False, + dragging=True) self.selected_turtle.set_pen_state(True) else: - self.selected_turtle.set_xy(pos, share=False, dragging=True) + self.selected_turtle.set_xy(*pos, share=False, + dragging=True) if self.update_counter % 5: self.lc.update_label_value( 'xcor', self.selected_turtle.get_xy()[0] / @@ -3959,34 +3961,42 @@ before making changes to your Turtle Blocks program')) self._process_block_data[b[0]] = [ b[0], b[1], b[2], b[3], [b[4][0], i, b[4][1]]] elif btype == 'hat': + name = None if b[4][1] < len(self._process_block_data): i = b[4][1] - name = self._process_block_data[i][1][1] + if i is not None: + name = self._process_block_data[i][1][1] else: i = b[4][1] - len(self._process_block_data) name = self._extra_block_data[i][1][1] - while self._find_proto_name('stack_%s' % (name), name): - name = increment_name(name) - if b[4][1] < len(self._process_block_data): - dblk = self._process_block_data[i] - self._process_block_data[i] = [dblk[0], (dblk[1][0], name), - dblk[2], dblk[3], dblk[4]] - else: - dblk = self._extra_block_data[i] - self._extra_block_data[i] = [dblk[0], (dblk[1][0], name), - dblk[2], dblk[3], dblk[4]] - self._new_stack_block(name) + if name is not None: + while self._find_proto_name('stack_%s' % (name), name): + name = increment_name(name) + if b[4][1] < len(self._process_block_data): + dblk = self._process_block_data[i] + self._process_block_data[i] = [ + dblk[0], (dblk[1][0], name), dblk[2], dblk[3], + dblk[4]] + else: + dblk = self._extra_block_data[i] + self._extra_block_data[i] = [ + dblk[0], (dblk[1][0], name), dblk[2], dblk[3], + dblk[4]] + self._new_stack_block(name) elif btype == 'storein': + name = None if b[4][1] < len(self._process_block_data): i = b[4][1] - name = self._process_block_data[i][1][1] + if i is not None: + name = self._process_block_data[i][1][1] else: i = b[4][1] - len(self._process_block_data) name = self._extra_block_data[i][1][1] - if not self._find_proto_name('storein_%s' % (name), name): - self._new_storein_block(name) - if not self._find_proto_name('box_%s' % (name), name): - self._new_box_block(name) + if name is not None: + if not self._find_proto_name('storein_%s' % (name), name): + self._new_storein_block(name) + if not self._find_proto_name('box_%s' % (name), name): + self._new_box_block(name) if btype in content_blocks: if btype == 'number': -- cgit v0.9.1