From 37c546928d991cffa3930cafec5079e6e03b893a Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Sun, 8 Jun 2025 23:51:07 +0200 Subject: [PATCH] Desktop: implement CTRL-V to paste --- internal_filesystem/boot_unix.py | 2 ++ internal_filesystem/lib/mpos/clipboard.py | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/internal_filesystem/boot_unix.py b/internal_filesystem/boot_unix.py index 89688a50..6f09dc7c 100644 --- a/internal_filesystem/boot_unix.py +++ b/internal_filesystem/boot_unix.py @@ -9,6 +9,7 @@ import sys sys.path.append('lib/') import mpos.ui +import mpos.clipboard #TFT_HOR_RES=640 #TFT_VER_RES=480 @@ -43,6 +44,7 @@ def catch_escape_key(indev, indev_data): import sdl_keyboard sdlkeyboard = sdl_keyboard.SDLKeyboard() sdlkeyboard._indev_drv.set_read_cb(catch_escape_key) # check for escape +sdlkeyboard.set_paste_text_callback(mpos.clipboard.paste_text) #def keyboard_cb(event): # global canvas diff --git a/internal_filesystem/lib/mpos/clipboard.py b/internal_filesystem/lib/mpos/clipboard.py index b803e954..4ea6c567 100644 --- a/internal_filesystem/lib/mpos/clipboard.py +++ b/internal_filesystem/lib/mpos/clipboard.py @@ -1,4 +1,4 @@ -# simple clipboard +import lvgl as lv copied = None @@ -7,3 +7,10 @@ def add(tocopy): def get(): return copied + +def paste_text(text): # called when CTRL-V is pressed on the keyboard + print(f"mpos.ui.clipboard.py paste_text adding {text}") + group = lv.group_get_default() + focused_obj = group.get_focused() + if focused_obj and isinstance(focused_obj, lv.textarea): + focused_obj.add_text(text)