diff options
author | DonScorgie <DonScorgie@8f060a39-251c-0410-b1f3-431655927647> | 2006-11-05 15:30:22 (GMT) |
---|---|---|
committer | DonScorgie <DonScorgie@8f060a39-251c-0410-b1f3-431655927647> | 2006-11-05 15:30:22 (GMT) |
commit | c20c039ffbc8a4e714d4d6954bfd2ec49f682bf1 (patch) | |
tree | 867e90b959c4f6f0968b4ab2a0bd1939d1082556 /src/TextThought.py | |
parent | fb048aac002c09de05a65cd9b5ec079c0ab815d9 (diff) |
* src/TextThought.py:
implement ctrl-a in thoughts.
Various improvments in handling
arrow keys
git-svn-id: http://labyrinth.googlecode.com/svn/trunk@113 8f060a39-251c-0410-b1f3-431655927647
Diffstat (limited to 'src/TextThought.py')
-rw-r--r-- | src/TextThought.py | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/TextThought.py b/src/TextThought.py index e42f4ed..b5d1306 100644 --- a/src/TextThought.py +++ b/src/TextThought.py @@ -239,8 +239,9 @@ class TextThought (BaseThought.BaseThought): shift = event.state & modifiers == gtk.gdk.SHIFT_MASK handled = True if (event.state & modifiers) & gtk.gdk.CONTROL_MASK: - pass - #TODO: Handle ctrl-?? etc. + if event.keyval == gtk.keysyms.a: + self.index = self.bindex = 0 + self.end_index = len (self.text) elif event.keyval == gtk.keysyms.Escape: self.emit ("finish_editing") elif event.keyval == gtk.keysyms.Left: @@ -268,9 +269,9 @@ class TextThought (BaseThought.BaseThought): self.move_index_end (shift) else: self.move_index_end (shift) - elif event.keyval == gtk.keysyms.BackSpace: + elif event.keyval == gtk.keysyms.BackSpace and self.editing: self.backspace_char () - elif event.keyval == gtk.keysyms.Delete: + elif event.keyval == gtk.keysyms.Delete and self.editing: self.delete_char () elif len (event.string) != 0: self.add_text (event.string) @@ -375,6 +376,7 @@ class TextThought (BaseThought.BaseThought): def move_index_back (self, mod): if self.index <= 0: + self.end_index = self.index return self.index-=int(self.bytes[self.bindex-1]) if not mod: @@ -382,6 +384,7 @@ class TextThought (BaseThought.BaseThought): def move_index_forward (self, mod): if self.index >= len(self.text): + self.end_index = self.index return self.index+=int(self.bytes[self.bindex]) if not mod: @@ -391,6 +394,7 @@ class TextThought (BaseThought.BaseThought): tmp = self.text.decode () lines = tmp.splitlines () if len (lines) == 1: + self.end_index = self.index return loc = 0 line = 0 @@ -402,6 +406,7 @@ class TextThought (BaseThought.BaseThought): break line+=1 if line == -1: + self.end_index = self.index return elif line >= len (lines): self.bindex -= len (lines[-1])+1 @@ -425,6 +430,7 @@ class TextThought (BaseThought.BaseThought): tmp = self.text.decode () lines = tmp.splitlines () if len (lines) == 1: + self.end_index = self.index return loc = 0 line = 0 @@ -434,6 +440,7 @@ class TextThought (BaseThought.BaseThought): break line += 1 if line >= len (lines)-1: + self.end_index = self.index return dist = self.bindex - (loc - len (lines[line]))+1 self.bindex = loc |