Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-11-11 16:20:20 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-11-11 16:20:20 (GMT)
commit357da6f6e28f4a8ff65e8972bc8641f2161ace65 (patch)
tree87bf20a13d8556d74e4cf0c3b782210595df05a8
parent4feae65e6fdd83f5ef3a395e6cd2f535ca6c1653 (diff)
fix several bugs in textview positioning and focus
-rw-r--r--TurtleArt/tawindow.py11
-rwxr-xr-xturtleblocks.py10
2 files changed, 12 insertions, 9 deletions
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 019b345..905585a 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -1803,6 +1803,8 @@ class TurtleArtWindow():
def _unselect_block(self):
''' Unselect block '''
# After unselecting a 'number' block, we need to check its value
+ if self.selected_blk is None:
+ return
if self.selected_blk.name == 'number':
if self._text_to_check:
self._test_number()
@@ -2408,6 +2410,8 @@ class TurtleArtWindow():
by += self.activity.menu_height + 4 # FIXME: padding
mx, my = blk.spr.label_left_top()
self._text_entry.set_pixels_above_lines(my)
+ bx -= int(self.activity.sw.get_hadjustment().get_value())
+ by -= int(self.activity.sw.get_vadjustment().get_value())
self.activity.fixed.move(self._text_entry, bx + mx, by + my * 2)
self.activity.fixed.show()
self._focus_out_id = self._text_entry.connect(
@@ -3202,10 +3206,9 @@ class TurtleArtWindow():
bounds = self._text_buffer.get_bounds()
text = self._text_buffer.get_text(bounds[0], bounds[1])
self._text_to_check = True
- if self.selected_blk.type == 'number':
- self._number_check(text)
- else:
- self._string_check(text)
+ if self.selected_blk is not None and \
+ self.selected_blk.name == 'string':
+ self._unselect_block()
def _test_string(self):
if hasattr(self, '_text_entry'):
diff --git a/turtleblocks.py b/turtleblocks.py
index 663db59..e82021d 100755
--- a/turtleblocks.py
+++ b/turtleblocks.py
@@ -329,16 +329,16 @@ class TurtleMain():
self.menu_bar.show()
self.menu_height = self.menu_bar.size_request()[1]
- sw = gtk.ScrolledWindow()
- sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- sw.show()
+ self.sw = gtk.ScrolledWindow()
+ self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ self.sw.show()
canvas = gtk.DrawingArea()
width = gtk.gdk.screen_width() * 2
height = gtk.gdk.screen_height() * 2
canvas.set_size_request(width, height)
- sw.add_with_viewport(canvas)
+ self.sw.add_with_viewport(canvas)
canvas.show()
- self.vbox.pack_end(sw, True, True)
+ self.vbox.pack_end(self.sw, True, True)
self.fixed.put(self.vbox, 0, 0)
self.fixed.show()