citra-emu
/
citra-canary
Archived
1
0
Fork 0

Allow focus only when in popout mode

Only allow manually setting focus to the rendering widget when in Single Window mode. Apply this behavior to when changing the mode while an app is running.
This commit is contained in:
Daniel Lundqvist 2014-12-26 19:42:27 +01:00
parent 9d90b26020
commit ba4ca041f4
2 changed files with 10 additions and 4 deletions

View File

@ -123,9 +123,6 @@ GRenderWindow::GRenderWindow(QWidget* parent) : QWidget(parent), emu_thread(this
std::string window_title = Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc); std::string window_title = Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc);
setWindowTitle(QString::fromStdString(window_title)); setWindowTitle(QString::fromStdString(window_title));
// Allow manually setting focus to the widget.
setFocusPolicy(Qt::ClickFocus);
keyboard_id = KeyMap::NewDeviceId(); keyboard_id = KeyMap::NewDeviceId();
ReloadSetKeymaps(); ReloadSetKeymaps();

View File

@ -170,7 +170,13 @@ void GMainWindow::BootGame(std::string filename)
render_window->GetEmuThread().start(); render_window->GetEmuThread().start();
render_window->show(); render_window->show();
// Allow manually setting focus to the render widget if not using popout mode.
if (!ui.action_Popout_Window_Mode->isChecked()) {
render_window->setFocusPolicy(Qt::ClickFocus);
render_window->setFocus(); render_window->setFocus();
}
OnStartGame(); OnStartGame();
} }
@ -231,12 +237,15 @@ void GMainWindow::ToggleWindowMode()
render_window->setParent(nullptr); render_window->setParent(nullptr);
render_window->setVisible(true); render_window->setVisible(true);
render_window->RestoreGeometry(); render_window->RestoreGeometry();
render_window->setFocusPolicy(Qt::NoFocus);
} }
else if (!enable && render_window->parent() == nullptr) else if (!enable && render_window->parent() == nullptr)
{ {
render_window->BackupGeometry(); render_window->BackupGeometry();
ui.horizontalLayout->addWidget(render_window); ui.horizontalLayout->addWidget(render_window);
render_window->setVisible(true); render_window->setVisible(true);
render_window->setFocusPolicy(Qt::ClickFocus);
render_window->setFocus();
} }
} }