imporove tab and char echo accuracy

This commit is contained in:
Chrys 2019-09-06 22:06:13 +02:00
parent fe96d204a7
commit 8e39b7b884
2 changed files with 10 additions and 4 deletions

View File

@ -24,6 +24,12 @@ class command():
xMove = abs(self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x'])
if xMove > 1:
return
if self.env['runtime']['inputManager'].getShortcutType() in ['KEY']:
if self.env['runtime']['inputManager'].getLastDeepestInput() in [['KEY_TAB']]:
return
elif self.env['runtime']['inputManager'].getShortcutType() in ['BYTE']:
if self.env['runtime']['byteManager'].getLastByteKey() in [b' ', b'\t']:
return
# detect deletion or chilling
if self.env['screen']['newCursor']['x'] <= self.env['screen']['oldCursor']['x']:
return

View File

@ -18,14 +18,14 @@ class command():
def run(self):
# try to detect the tab completion by cursor change
xMove = abs(self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x'])
if xMove == 1:
xMove = self.env['screen']['newCursor']['x'] - self.env['screen']['oldCursor']['x']
if xMove > 0:
return
if self.env['runtime']['inputManager'].getShortcutType() in ['KEY']:
if not (self.env['runtime']['inputManager'].getLastDeepestInput() in [['KEY_TAB']]):
return
if self.env['runtime']['inputManager'].getShortcutType() in ['BYTE']:
if not (self.env['runtime']['byteManager'].getLastByteKey() in [b' '):
elif self.env['runtime']['inputManager'].getShortcutType() in ['BYTE']:
if not (self.env['runtime']['byteManager'].getLastByteKey() in [b' ', b'\t']):
return
# is there any change?
if not self.env['runtime']['screenManager'].isDelta():