mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Prevent esc key from closing the loading msg and the initial open book screen
This commit is contained in:
parent
b72922e94c
commit
e9250df828
@ -28,6 +28,7 @@ class LoadingMessage: # {{{
|
|||||||
def __init__(self, msg, current_color_scheme):
|
def __init__(self, msg, current_color_scheme):
|
||||||
self.msg = msg or ''
|
self.msg = msg or ''
|
||||||
self.current_color_scheme = current_color_scheme
|
self.current_color_scheme = current_color_scheme
|
||||||
|
self.is_not_escapable = True # prevent Esc key from closing
|
||||||
|
|
||||||
def show(self, container):
|
def show(self, container):
|
||||||
self.container_id = container.getAttribute('id')
|
self.container_id = container.getAttribute('id')
|
||||||
@ -440,6 +441,7 @@ class OpenBook: # {{{
|
|||||||
def __init__(self, overlay, closeable):
|
def __init__(self, overlay, closeable):
|
||||||
self.overlay = overlay
|
self.overlay = overlay
|
||||||
self.closeable = closeable
|
self.closeable = closeable
|
||||||
|
self.is_not_escapable = not closeable # prevent Esc key from closing
|
||||||
|
|
||||||
def on_container_click(self, evt):
|
def on_container_click(self, evt):
|
||||||
pass # Dont allow panel to be closed by a click
|
pass # Dont allow panel to be closed by a click
|
||||||
@ -516,6 +518,14 @@ class Overlay:
|
|||||||
p.on_hide()
|
p.on_hide()
|
||||||
self.show_current_panel()
|
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):
|
def show_current_panel(self):
|
||||||
if self.panels.length:
|
if self.panels.length:
|
||||||
c = self.clear_container()
|
c = self.clear_container()
|
||||||
|
@ -272,10 +272,9 @@ class View:
|
|||||||
|
|
||||||
def handle_keypress(self, evt):
|
def handle_keypress(self, evt):
|
||||||
if self.overlay.is_visible and evt.key is 'Escape':
|
if self.overlay.is_visible and evt.key is 'Escape':
|
||||||
self.overlay.hide_current_panel()
|
if self.overlay.handle_escape():
|
||||||
if evt.preventDefault:
|
if evt.preventDefault:
|
||||||
evt.preventDefault(), evt.stopPropagation()
|
evt.preventDefault(), evt.stopPropagation()
|
||||||
return
|
|
||||||
|
|
||||||
def overlay_visibility_changed(self, visible):
|
def overlay_visibility_changed(self, visible):
|
||||||
if self.iframe_wrapper.send_message:
|
if self.iframe_wrapper.send_message:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user