Fix #4289
This commit is contained in:
parent
daefb926d9
commit
4448444d4b
@ -147,6 +147,7 @@ class ThemesHandler(Handler):
|
|||||||
self.colors_set_once = False
|
self.colors_set_once = False
|
||||||
self.line_edit = LineEdit()
|
self.line_edit = LineEdit()
|
||||||
self.tabs = tuple('all dark light recent'.split())
|
self.tabs = tuple('all dark light recent'.split())
|
||||||
|
self.quit_on_next_key_release = -1
|
||||||
|
|
||||||
def update_recent(self) -> None:
|
def update_recent(self) -> None:
|
||||||
r = list(self.cached_values.get('recent', ()))
|
r = list(self.cached_values.get('recent', ()))
|
||||||
@ -237,7 +238,8 @@ class ThemesHandler(Handler):
|
|||||||
|
|
||||||
def on_fetching_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
def on_fetching_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
||||||
if key_event.matches('esc'):
|
if key_event.matches('esc'):
|
||||||
self.quit_loop(0)
|
self.quit_on_next_key_release = 0
|
||||||
|
return
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
@ -383,7 +385,8 @@ class ThemesHandler(Handler):
|
|||||||
|
|
||||||
def on_browsing_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
def on_browsing_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
||||||
if key_event.matches('esc') or key_event.matches_text('q'):
|
if key_event.matches('esc') or key_event.matches_text('q'):
|
||||||
return self.quit_loop(0)
|
self.quit_on_next_key_release = 0
|
||||||
|
return
|
||||||
for cat in 'all dark light recent'.split():
|
for cat in 'all dark light recent'.split():
|
||||||
if key_event.matches_text(cat[0]) or key_event.matches(f'alt+{cat[0]}'):
|
if key_event.matches_text(cat[0]) or key_event.matches(f'alt+{cat[0]}'):
|
||||||
if cat != self.current_category:
|
if cat != self.current_category:
|
||||||
@ -454,7 +457,7 @@ class ThemesHandler(Handler):
|
|||||||
|
|
||||||
def on_accepting_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
def on_accepting_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
||||||
if key_event.matches_text('q') or key_event.matches('esc'):
|
if key_event.matches_text('q') or key_event.matches('esc'):
|
||||||
self.quit_loop(0)
|
self.quit_on_next_key_release = 0
|
||||||
return
|
return
|
||||||
if key_event.matches_text('a'):
|
if key_event.matches_text('a'):
|
||||||
self.state = State.browsing
|
self.state = State.browsing
|
||||||
@ -463,16 +466,19 @@ class ThemesHandler(Handler):
|
|||||||
if key_event.matches_text('p'):
|
if key_event.matches_text('p'):
|
||||||
self.themes_list.current_theme.save_in_dir(config_dir)
|
self.themes_list.current_theme.save_in_dir(config_dir)
|
||||||
self.update_recent()
|
self.update_recent()
|
||||||
self.quit_loop(0)
|
self.quit_on_next_key_release = 0
|
||||||
return
|
return
|
||||||
if key_event.matches_text('m'):
|
if key_event.matches_text('m'):
|
||||||
self.themes_list.current_theme.save_in_conf(config_dir, self.cli_opts.reload_in)
|
self.themes_list.current_theme.save_in_conf(config_dir, self.cli_opts.reload_in)
|
||||||
self.update_recent()
|
self.update_recent()
|
||||||
self.quit_loop(0)
|
self.quit_on_next_key_release = 0
|
||||||
return
|
return
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
def on_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
def on_key_event(self, key_event: KeyEventType, in_bracketed_paste: bool = False) -> None:
|
||||||
|
if self.quit_on_next_key_release > -1 and key_event.is_release:
|
||||||
|
self.quit_loop(self.quit_on_next_key_release)
|
||||||
|
return
|
||||||
if self.state is State.fetching:
|
if self.state is State.fetching:
|
||||||
self.on_fetching_key_event(key_event, in_bracketed_paste)
|
self.on_fetching_key_event(key_event, in_bracketed_paste)
|
||||||
elif self.state is State.browsing:
|
elif self.state is State.browsing:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user