Switch to using the new SingleKey implementation

This commit is contained in:
Kovid Goyal
2022-08-12 12:21:06 +05:30
parent c982f24faf
commit ce91b6d9d9
9 changed files with 29 additions and 46 deletions

View File

@@ -11,7 +11,7 @@ from kitty.constants import website_url
definition = Definition(
'kitty',
Action('map', 'parse_map', {'keymap': 'KeyMap', 'sequence_map': 'SequenceMap', 'alias_map': 'AliasMap'},
['KeyDefinition', 'kitty.types.SingleKey']),
['KeyDefinition', 'kitty.fast_data_types.SingleKey']),
Action('mouse_map', 'parse_mouse_map', {'mousemap': 'MouseMap'}, ['MouseMapping']),
has_color_table=True,
)

View File

@@ -4,12 +4,12 @@ import typing
from array import array
from kitty.constants import is_macos
import kitty.constants
from kitty.fast_data_types import Color
from kitty.fast_data_types import Color, SingleKey
import kitty.fast_data_types
import kitty.fonts
from kitty.options.utils import AliasMap, KeyDefinition, KeyMap, MouseMap, MouseMapping, SequenceMap, TabBarMarginHeight
import kitty.options.utils
from kitty.types import FloatEdges, SingleKey
from kitty.types import FloatEdges
import kitty.types
if typing.TYPE_CHECKING:

View File

@@ -18,7 +18,7 @@ from kitty.conf.utils import (
)
from kitty.constants import is_macos
from kitty.fast_data_types import (
CURSOR_BEAM, CURSOR_BLOCK, CURSOR_UNDERLINE, Color
CURSOR_BEAM, CURSOR_BLOCK, CURSOR_UNDERLINE, Color, SingleKey
)
from kitty.fonts import (
FontFeature, FontModification, ModificationType, ModificationUnit,
@@ -29,7 +29,7 @@ from kitty.key_names import (
get_key_name_lookup
)
from kitty.rgb import color_as_int
from kitty.types import FloatEdges, MouseEvent, SingleKey
from kitty.types import FloatEdges, MouseEvent
from kitty.utils import expandvars, log_error, resolve_abs_or_config_path
KeyMap = Dict[SingleKey, str]
@@ -1023,9 +1023,7 @@ class BaseDefinition:
def resolve_key_mods(kitty_mod: int, mods: int) -> int:
if mods & defines.GLFW_MOD_KITTY:
mods = (mods & ~defines.GLFW_MOD_KITTY) | kitty_mod
return mods
return SingleKey(mods=mods).resolve_kitty_mod(kitty_mod).mods
class MouseMapping(BaseDefinition):
@@ -1072,8 +1070,7 @@ class KeyDefinition(BaseDefinition):
def resolve_and_copy(self, kitty_mod: int) -> 'KeyDefinition':
def r(k: SingleKey) -> SingleKey:
mods = resolve_key_mods(kitty_mod, k.mods)
return k._replace(mods=mods)
return k.resolve_kitty_mod(kitty_mod)
ans = KeyDefinition(
self.is_sequence, r(self.trigger), tuple(map(r, self.rest)),
self.definition