mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-07 10:14:46 -04:00
Windows: E-book viewer: Fix switching away from viewer while in fullscreen and switching back causing some corruption until the page is scrolled. Fixes #1918591 [[Viewer] Using Alt + Tab to switch programs in Windows when using the viewer in full screen, the text is adjusted as it was not in full screen](https://bugs.launchpad.net/calibre/+bug/1918591)
This commit is contained in:
parent
1857483eb0
commit
09470577fe
@ -17,7 +17,7 @@ from qt.core import (
|
|||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
from calibre import prints
|
from calibre import prints
|
||||||
from calibre.constants import ismacos
|
from calibre.constants import ismacos, iswindows
|
||||||
from calibre.customize.ui import available_input_formats
|
from calibre.customize.ui import available_input_formats
|
||||||
from calibre.db.annotations import merge_annotations
|
from calibre.db.annotations import merge_annotations
|
||||||
from calibre.gui2 import choose_files, error_dialog, sanitize_env_vars
|
from calibre.gui2 import choose_files, error_dialog, sanitize_env_vars
|
||||||
@ -289,6 +289,7 @@ class EbookViewer(MainWindow):
|
|||||||
|
|
||||||
def toggle_full_screen(self):
|
def toggle_full_screen(self):
|
||||||
self.set_full_screen(not self.isFullScreen())
|
self.set_full_screen(not self.isFullScreen())
|
||||||
|
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# Docks (ToC, Bookmarks, Lookup, etc.) {{{
|
# Docks (ToC, Bookmarks, Lookup, etc.) {{{
|
||||||
@ -743,11 +744,16 @@ class EbookViewer(MainWindow):
|
|||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
def eventFilter(self, obj, ev):
|
def eventFilter(self, obj, ev):
|
||||||
if ev.type() == QEvent.Type.MouseMove:
|
et = ev.type()
|
||||||
|
if et == QEvent.Type.MouseMove:
|
||||||
if self.cursor_hidden:
|
if self.cursor_hidden:
|
||||||
self.cursor_hidden = False
|
self.cursor_hidden = False
|
||||||
QApplication.instance().restoreOverrideCursor()
|
QApplication.instance().restoreOverrideCursor()
|
||||||
self.hide_cursor_timer.start()
|
self.hide_cursor_timer.start()
|
||||||
|
elif et == QEvent.Type.FocusIn:
|
||||||
|
if iswindows and obj and obj.objectName() == 'EbookViewerClassWindow' and self.isFullScreen():
|
||||||
|
# See https://bugs.launchpad.net/calibre/+bug/1918591
|
||||||
|
self.web_view.repair_after_fullscreen_switch()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def hide_cursor(self):
|
def hide_cursor(self):
|
||||||
|
@ -291,6 +291,7 @@ class ViewerBridge(Bridge):
|
|||||||
generic_action = to_js()
|
generic_action = to_js()
|
||||||
show_search_result = to_js()
|
show_search_result = to_js()
|
||||||
prepare_for_close = to_js()
|
prepare_for_close = to_js()
|
||||||
|
repair_after_fullscreen_switch = to_js()
|
||||||
viewer_font_size_changed = to_js()
|
viewer_font_size_changed = to_js()
|
||||||
tts_event = to_js()
|
tts_event = to_js()
|
||||||
|
|
||||||
@ -742,3 +743,6 @@ class WebView(RestartingWebEngineView):
|
|||||||
def show_book_folder(self):
|
def show_book_folder(self):
|
||||||
path = os.path.dirname(os.path.abspath(set_book_path.pathtoebook))
|
path = os.path.dirname(os.path.abspath(set_book_path.pathtoebook))
|
||||||
safe_open_url(QUrl.fromLocalFile(path))
|
safe_open_url(QUrl.fromLocalFile(path))
|
||||||
|
|
||||||
|
def repair_after_fullscreen_switch(self):
|
||||||
|
self.execute_when_ready('repair_after_fullscreen_switch')
|
||||||
|
@ -1255,11 +1255,13 @@ class View:
|
|||||||
}
|
}
|
||||||
return pos
|
return pos
|
||||||
|
|
||||||
def show_status_message(self, msg):
|
def show_status_message(self, msg, timeout):
|
||||||
self.current_status_message = msg or ''
|
self.current_status_message = msg or ''
|
||||||
self.update_header_footer()
|
self.update_header_footer()
|
||||||
if self.current_status_message:
|
if self.current_status_message:
|
||||||
window.setTimeout(def(): self.show_status_message();, 10000)
|
if not timeout?:
|
||||||
|
timeout = 10000
|
||||||
|
window.setTimeout(def(): self.show_status_message();, timeout)
|
||||||
|
|
||||||
def create_template_renderer(self):
|
def create_template_renderer(self):
|
||||||
if not self.book:
|
if not self.book:
|
||||||
|
@ -283,6 +283,12 @@ def prepare_for_close():
|
|||||||
ui_operations.close_prep_finished(None)
|
ui_operations.close_prep_finished(None)
|
||||||
|
|
||||||
|
|
||||||
|
@from_python
|
||||||
|
def repair_after_fullscreen_switch():
|
||||||
|
if view:
|
||||||
|
view.show_status_message('...', 200)
|
||||||
|
|
||||||
|
|
||||||
@from_python
|
@from_python
|
||||||
def viewer_font_size_changed():
|
def viewer_font_size_changed():
|
||||||
if view:
|
if view:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user