Browse Source

Merge pull request #257 from ceccopierangiolieugenio/256-texteditlineedit-return-false-for-unhandled-keypresses

FIX: #256 TextEdit return default if key not handled
pull/259/head
Pier CeccoPierangioliEugenio 2 years ago committed by GitHub
parent
commit
c8b6e1fa89
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      TermTk/TTkWidgets/lineedit.py
  2. 10
      TermTk/TTkWidgets/texedit.py

2
TermTk/TTkWidgets/lineedit.py

@ -271,7 +271,7 @@ class TTkLineEdit(TTkWidget):
elif evt.key == TTkK.Key_X:
self.cut()
else:
return False
return super().keyEvent(evt)
return True
if evt.key == TTkK.Key_Left:

10
TermTk/TTkWidgets/texedit.py

@ -30,6 +30,7 @@ from TermTk.TTkCore.constant import TTkK
from TermTk.TTkCore.cfg import TTkCfg
from TermTk.TTkCore.string import TTkString
from TermTk.TTkCore.signal import pyTTkSignal, pyTTkSlot
from TermTk.TTkCore.TTkTerm.inputkey import TTkKeyEvent
from TermTk.TTkGui.clipboard import TTkClipboard
from TermTk.TTkGui.textwrap1 import TTkTextWrap
from TermTk.TTkGui.textcursor import TTkTextCursor
@ -488,6 +489,9 @@ class TTkTextEditView(TTkAbstractScrollView):
# TTkLog.debug(f"Saving {self._textCursor.selectedText()} {self._textCursor._properties[0].anchor.pos}")
self._textDocument.saveSnapshot(self._textCursor.copy())
if evt.key == TTkK.Key_Tab and evt.mod==TTkK.NoModifier:
evt = TTkKeyEvent(TTkK.Character, '\t', '\t', TTkK.NoModifier)
if evt.type == TTkK.SpecialKey:
_,_,w,h = self.geometry()
@ -505,9 +509,6 @@ class TTkTextEditView(TTkAbstractScrollView):
ctrl = evt.mod==TTkK.ControlModifier
if evt.key == TTkK.Key_Tab:
# Don't Handle the special tab key, for now
return False
if ctrl:
p = self._textCursor.position()
cx, cy = self._textWrap.dataToScreenPosition(p.line, p.pos)
@ -568,6 +569,9 @@ class TTkTextEditView(TTkAbstractScrollView):
elif evt.key == TTkK.Key_Enter:
if self._multiLine:
self._textCursor.insertText('\n', moveCursor=True)
else:
# No action performed
return super().keyEvent(evt)
# Scroll to align to the cursor
p = self._textCursor.position()
cx, cy = self._textWrap.dataToScreenPosition(p.line, p.pos)

Loading…
Cancel
Save