mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-26 10:12:17 +02:00
Make send_text a normal keybaord shortcut action
Uses the new support for arguments to shortcut actions. Fixes #173
This commit is contained in:
@@ -8,7 +8,7 @@ from collections import deque
|
||||
from enum import Enum
|
||||
from itertools import count
|
||||
|
||||
from .config import build_ansi_color_table
|
||||
from .config import build_ansi_color_table, parse_send_text_bytes
|
||||
from .constants import (
|
||||
ScreenGeometry, WindowGeometry, appname, cell_size, get_boss,
|
||||
viewport_size, wakeup
|
||||
@@ -21,6 +21,7 @@ from .fast_data_types import (
|
||||
glfw_post_empty_event, init_cell_program, init_cursor_program, remove_vao,
|
||||
set_window_render_data, update_window_title, update_window_visibility
|
||||
)
|
||||
from .keys import keyboard_mode_name
|
||||
from .rgb import to_color
|
||||
from .terminfo import get_capabilities
|
||||
from .utils import color_as_int, load_shaders, parse_color_set, sanitize_title, open_url, open_cmd
|
||||
@@ -143,6 +144,17 @@ class Window:
|
||||
boss.gui_close_window(self)
|
||||
self.screen = None
|
||||
|
||||
def send_text(self, *args):
|
||||
mode = keyboard_mode_name(self.screen)
|
||||
required_mode, text = args[-2:]
|
||||
required_mode = frozenset(required_mode.split(','))
|
||||
if not required_mode & {mode, 'all'}:
|
||||
return True
|
||||
data = parse_send_text_bytes(text)
|
||||
if not data:
|
||||
return True
|
||||
self.write_to_child(data)
|
||||
|
||||
def write_to_child(self, data):
|
||||
if data:
|
||||
if get_boss().child_monitor.needs_write(self.id, data) is not True:
|
||||
|
||||
Reference in New Issue
Block a user