Prevent esc key from closing the loading msg and the initial open book screen

This commit is contained in:
Kovid Goyal 2019-10-05 10:23:12 +05:30
parent b72922e94c
commit e9250df828
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 13 additions and 4 deletions

View File

@ -28,6 +28,7 @@ class LoadingMessage: # {{{
def __init__(self, msg, current_color_scheme):
self.msg = msg or ''
self.current_color_scheme = current_color_scheme
self.is_not_escapable = True # prevent Esc key from closing
def show(self, container):
self.container_id = container.getAttribute('id')
@ -440,6 +441,7 @@ class OpenBook: # {{{
def __init__(self, overlay, closeable):
self.overlay = overlay
self.closeable = closeable
self.is_not_escapable = not closeable # prevent Esc key from closing
def on_container_click(self, evt):
pass # Dont allow panel to be closed by a click
@ -516,6 +518,14 @@ class Overlay:
p.on_hide()
self.show_current_panel()
def handle_escape(self):
if self.panels.length:
p = self.panels[-1]
if not p.is_not_escapable:
self.hide_current_panel()
return True
return False
def show_current_panel(self):
if self.panels.length:
c = self.clear_container()

View File

@ -272,10 +272,9 @@ class View:
def handle_keypress(self, evt):
if self.overlay.is_visible and evt.key is 'Escape':
self.overlay.hide_current_panel()
if evt.preventDefault:
evt.preventDefault(), evt.stopPropagation()
return
if self.overlay.handle_escape():
if evt.preventDefault:
evt.preventDefault(), evt.stopPropagation()
def overlay_visibility_changed(self, visible):
if self.iframe_wrapper.send_message: