InputCore Overhaul
This commit is contained in:
@@ -13,7 +13,12 @@
|
||||
#include "common/scm_rev.h"
|
||||
#include "common/string_util.h"
|
||||
#include "core/core.h"
|
||||
#include "core/frontend/key_map.h"
|
||||
#include "core/settings.h"
|
||||
#include "core/system.h"
|
||||
|
||||
#include "input_core/devices/keyboard.h"
|
||||
#include "input_core/input_core.h"
|
||||
|
||||
#include "video_core/debug_utils/debug_utils.h"
|
||||
#include "video_core/video_core.h"
|
||||
|
||||
@@ -104,9 +109,6 @@ GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread)
|
||||
std::string window_title =
|
||||
Common::StringFromFormat("Citra | %s-%s", Common::g_scm_branch, Common::g_scm_desc);
|
||||
setWindowTitle(QString::fromStdString(window_title));
|
||||
|
||||
keyboard_id = KeyMap::NewDeviceId();
|
||||
ReloadSetKeymaps();
|
||||
}
|
||||
|
||||
void GRenderWindow::moveContext() {
|
||||
@@ -196,11 +198,17 @@ void GRenderWindow::closeEvent(QCloseEvent* event) {
|
||||
}
|
||||
|
||||
void GRenderWindow::keyPressEvent(QKeyEvent* event) {
|
||||
KeyMap::PressKey(*this, {event->key(), keyboard_id});
|
||||
auto keyboard = InputCore::GetKeyboard();
|
||||
KeyboardKey param =
|
||||
KeyboardKey(event->key(), QKeySequence(event->key()).toString().toStdString());
|
||||
keyboard->KeyPressed(param);
|
||||
}
|
||||
|
||||
void GRenderWindow::keyReleaseEvent(QKeyEvent* event) {
|
||||
KeyMap::ReleaseKey(*this, {event->key(), keyboard_id});
|
||||
auto keyboard = InputCore::GetKeyboard();
|
||||
KeyboardKey param =
|
||||
KeyboardKey(event->key(), QKeySequence(event->key()).toString().toStdString());
|
||||
keyboard->KeyReleased(param);
|
||||
}
|
||||
|
||||
void GRenderWindow::mousePressEvent(QMouseEvent* event) {
|
||||
@@ -224,15 +232,6 @@ void GRenderWindow::mouseReleaseEvent(QMouseEvent* event) {
|
||||
this->TouchReleased();
|
||||
}
|
||||
|
||||
void GRenderWindow::ReloadSetKeymaps() {
|
||||
KeyMap::ClearKeyMapping(keyboard_id);
|
||||
for (int i = 0; i < Settings::NativeInput::NUM_INPUTS; ++i) {
|
||||
KeyMap::SetKeyMapping(
|
||||
{Settings::values.input_mappings[Settings::NativeInput::All[i]], keyboard_id},
|
||||
KeyMap::mapping_targets[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void GRenderWindow::OnClientAreaResized(unsigned width, unsigned height) {
|
||||
NotifyClientAreaSizeChanged(std::make_pair(width, height));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user