Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/TextThought.py
diff options
context:
space:
mode:
authorDonScorgie <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)
commitc20c039ffbc8a4e714d4d6954bfd2ec49f682bf1 (patch)
tree867e90b959c4f6f0968b4ab2a0bd1939d1082556 /src/TextThought.py
parentfb048aac002c09de05a65cd9b5ec079c0ab815d9 (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.py15
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