diff --git a/src/fenrir/commands/onCursorChange/45000-char_echo.py b/src/fenrir/commands/onCursorChange/45000-char_echo.py index e84eb6ef..f52c2c3a 100644 --- a/src/fenrir/commands/onCursorChange/45000-char_echo.py +++ b/src/fenrir/commands/onCursorChange/45000-char_echo.py @@ -26,7 +26,8 @@ class command(): if not self.env['runtime']['screenManager'].isDelta(): return # big changes are no char (but the value is bigger than one maybe the differ needs longer than you can type, so a little strange random buffer for now) - if len(self.env['screen']['newDelta'].strip(' \n\t')) > 1: + xMove = abs(self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x']) + if not( (xMove >= 1) and xMove == len(self.env['screen']['newDelta'])): return # filter unneded space on word begin currDelta = self.env['screen']['newDelta'] diff --git a/src/fenrir/commands/onCursorChange/50000-present_char_if_cursor_change_horizontal.py b/src/fenrir/commands/onCursorChange/50000-present_char_if_cursor_change_horizontal.py index 1a684f13..ab09adaa 100644 --- a/src/fenrir/commands/onCursorChange/50000-present_char_if_cursor_change_horizontal.py +++ b/src/fenrir/commands/onCursorChange/50000-present_char_if_cursor_change_horizontal.py @@ -33,6 +33,7 @@ class command(): # is it a horizontal change? if not self.env['runtime']['cursorManager'].isCursorHorizontalMove(): return + # echo word insteed of char if self.env['runtime']['settingsManager'].getSettingAsBool('keyboard', 'wordEcho'): if abs(self.env['screen']['oldCursor']['x'] - self.env['screen']['newCursor']['x']) != 1: @@ -42,7 +43,7 @@ class command(): word_utils.getCurrentWord(self.env['screen']['newCursor']['x'], 0, newContent) if self.env['screen']['newCursor']['x'] == x: return - x, y, currChar = char_utils.getCurrentChar(self.env['screen']['newCursor']['x'], self.env['screen']['newCursor']['y'], self.env['screen']['newContentText']) + x, y, currChar = char_utils.getCurrentChar(self.env['screen']['newCursor']['x'], self.env['screen']['newCursor']['y'], self.env['screen']['newContentText']) if not currChar.isspace(): self.env['runtime']['outputManager'].presentText(currChar, interrupt=True, ignorePunctuation=True, announceCapital=True, flush=False) def setCallback(self, callback): diff --git a/src/fenrir/commands/onScreenUpdate/70000-incoming.py b/src/fenrir/commands/onScreenUpdate/70000-incoming.py index 1b1ec0d9..7f8c1a85 100644 --- a/src/fenrir/commands/onScreenUpdate/70000-incoming.py +++ b/src/fenrir/commands/onScreenUpdate/70000-incoming.py @@ -20,16 +20,18 @@ class command(): if not self.env['runtime']['settingsManager'].getSettingAsBool('speech', 'autoReadIncoming'): return # is there something to read? - if not self.env['runtime']['screenManager'].isDelta(): + if not self.env['runtime']['screenManager'].isDelta(ignoreSpace=True): return # this must be a keyecho or something - if len(self.env['screen']['newDelta'].strip(' \n\t')) <= 1: - if abs(self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x']) >= 1: - # if len(self.env['screen']['newDelta'].strip(' \n\t0123456789')) <= 2: - return - if abs(self.env['screen']['newCursor']['y'] - self.env['screen']['oldCursor']['y']) == 1: - # if len(self.env['screen']['newDelta'].strip(' \n\t0123456789')) <= 2: - return + #if len(self.env['screen']['newDelta'].strip(' \n\t')) <= 1: + xMove = abs(self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x']) + yMove = abs(self.env['screen']['newCursor']['y'] - self.env['screen']['oldCursor']['y']) + if (xMove >= 1) and xMove == len(self.env['screen']['newDelta']): + # if len(self.env['screen']['newDelta'].strip(' \n\t0123456789')) <= 2: + return + #if yMove == 1: + # if len(self.env['screen']['newDelta'].strip(' \n\t0123456789')) <= 2: + # return self.env['runtime']['outputManager'].presentText(self.env['screen']['newDelta'], interrupt=False, flush=False) def setCallback(self, callback): diff --git a/src/fenrir/screenDriver/vcsaDriver.py b/src/fenrir/screenDriver/vcsaDriver.py index 0adc50c9..af5a611b 100644 --- a/src/fenrir/screenDriver/vcsaDriver.py +++ b/src/fenrir/screenDriver/vcsaDriver.py @@ -337,7 +337,7 @@ class driver(screenDriver): else: cursorLineStart = self.env['screen']['newCursor']['y'] * self.env['screen']['columns'] + self.env['screen']['newCursor']['y'] cursorLineEnd = cursorLineStart + self.env['screen']['columns'] - if abs(self.env['screen']['oldCursor']['x'] - self.env['screen']['newCursor']['x']) == 1 and \ + if abs(self.env['screen']['oldCursor']['x'] - self.env['screen']['newCursor']['x']) >= 1 and \ self.env['screen']['oldCursor']['y'] == self.env['screen']['newCursor']['y'] and \ self.env['screen']['newContentText'][:cursorLineStart] == self.env['screen']['oldContentText'][:cursorLineStart] and \ self.env['screen']['newContentText'][cursorLineEnd:] == self.env['screen']['oldContentText'][cursorLineEnd:]: