pikvm/pikvm#306: replace quotes for hid print

This commit is contained in:
Devaev Maxim 2021-05-20 04:22:32 +03:00
parent c1fcfdb6ce
commit c0afe3ba40

View File

@ -29,7 +29,7 @@ from .mappings import WebModifiers
# ===== # =====
def text_to_web_keys( def text_to_web_keys( # pylint: disable=too-many-branches
text: str, text: str,
symmap: Dict[int, Dict[int, str]], symmap: Dict[int, Dict[int, str]],
shift_key: str=WebModifiers.SHIFT_LEFT, shift_key: str=WebModifiers.SHIFT_LEFT,
@ -39,18 +39,25 @@ def text_to_web_keys(
shifted = False shifted = False
for ch in text: for ch in text:
try: # https://stackoverflow.com/questions/12343987/convert-ascii-character-to-x11-keycode
code = ord(ch) # https://www.ascii-code.com
if 0x20 <= code <= 0x7E: if ch == "\n":
# https://stackoverflow.com/questions/12343987/convert-ascii-character-to-x11-keycode keys = {0: "Enter"}
# https://www.ascii-code.com elif ch == "\t":
keys = symmap[code] keys = {0: "Tab"}
elif code == 0x0A: # Enter: elif ch == " ":
keys = {0: "Enter"} keys = {0: "Space"}
else: else:
if ch in ["", "", ""]:
ch = "'"
elif ch in ["", "", ""]:
ch = "\""
if not ch.isprintable():
continue
try:
keys = symmap[ord(ch)]
except Exception:
continue continue
except Exception:
continue
for (modifiers, key) in reversed(keys.items()): for (modifiers, key) in reversed(keys.items()):
if (modifiers & SymmapModifiers.ALTGR) or (modifiers & SymmapModifiers.CTRL): if (modifiers & SymmapModifiers.ALTGR) or (modifiers & SymmapModifiers.CTRL):