Răsfoiți Sursa

Allow focus on the Qt render widget

By default widgets are set to the focus policy Qt::NoFocus which disallows manually focusing it. Changing the policy to allow clicking the widget to set focus to it allows for keyboard input when not rendering to a popout window. This commit also sets focus to the widget when showing it.

Fixes issue #158.
Daniel Lundqvist 11 ani în urmă
părinte
comite
9d90b26020
2 a modificat fișierele cu 4 adăugiri și 0 ștergeri
  1. 3 0
      src/citra_qt/bootmanager.cpp
  2. 1 0
      src/citra_qt/main.cpp

+ 3 - 0
src/citra_qt/bootmanager.cpp

@@ -123,6 +123,9 @@ 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();
 
 

+ 1 - 0
src/citra_qt/main.cpp

@@ -170,6 +170,7 @@ void GMainWindow::BootGame(std::string filename)
     render_window->GetEmuThread().start();
     render_window->GetEmuThread().start();
 
 
     render_window->show();
     render_window->show();
+    render_window->setFocus();
     OnStartGame();
     OnStartGame();
 }
 }