From 08026c53396bfca66a8cca4485b39e633bc83472 Mon Sep 17 00:00:00 2001 From: Eugenio Parodi Date: Fri, 19 Apr 2024 20:19:50 +0100 Subject: [PATCH] FIX: #256 TextEdit return default if key not handled --- TermTk/TTkWidgets/lineedit.py | 2 +- TermTk/TTkWidgets/texedit.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/TermTk/TTkWidgets/lineedit.py b/TermTk/TTkWidgets/lineedit.py index a8c91e26..b7ed3c27 100644 --- a/TermTk/TTkWidgets/lineedit.py +++ b/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: diff --git a/TermTk/TTkWidgets/texedit.py b/TermTk/TTkWidgets/texedit.py index 52691fa6..66d56832 100644 --- a/TermTk/TTkWidgets/texedit.py +++ b/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)