When showing the cover browser in a separate window, focus the cover browser so that keyboard shortcuts work immediately. Fixes #835933 ([enhancement] in cover browser)

This commit is contained in:
Kovid Goyal 2011-08-28 08:37:57 -06:00
parent 676dead1d3
commit 80638df610

View File

@ -161,6 +161,7 @@ class CBDialog(QDialog):
a.setShortcuts([QKeySequence('Esc', QKeySequence.PortableText)]) a.setShortcuts([QKeySequence('Esc', QKeySequence.PortableText)])
self.pre_fs_geom = None self.pre_fs_geom = None
cover_flow.setFocus(Qt.OtherFocusReason)
def closeEvent(self, *args): def closeEvent(self, *args):
if not self.isFullScreen(): if not self.isFullScreen():
@ -174,13 +175,15 @@ class CBDialog(QDialog):
self.restoreGeometry(self.pre_fs_geom) self.restoreGeometry(self.pre_fs_geom)
self.pre_fs_geom = None self.pre_fs_geom = None
def show_fullscreen(self):
self.pre_fs_geom = bytearray(self.saveGeometry())
self.showFullScreen()
def toggle_fullscreen(self, *args): def toggle_fullscreen(self, *args):
if self.isFullScreen(): if self.isFullScreen():
self.show_normal() self.show_normal()
else: else:
self.pre_fs_geom = bytearray(self.saveGeometry()) self.show_fullscreen()
self.showFullScreen()
class CoverFlowMixin(object): class CoverFlowMixin(object):
@ -255,7 +258,7 @@ class CoverFlowMixin(object):
d.addAction(self.cb_splitter.action_toggle) d.addAction(self.cb_splitter.action_toggle)
self.cover_flow.setVisible(True) self.cover_flow.setVisible(True)
self.cover_flow.setFocus(Qt.OtherFocusReason) self.cover_flow.setFocus(Qt.OtherFocusReason)
d.showFullScreen() if gprefs['cb_fullscreen'] else d.show() d.show_fullscreen() if gprefs['cb_fullscreen'] else d.show()
self.cb_splitter.button.set_state_to_hide() self.cb_splitter.button.set_state_to_hide()
d.closed.connect(self.cover_browser_closed) d.closed.connect(self.cover_browser_closed)
self.cb_dialog = d self.cb_dialog = d