diff --git a/rpcs3/Input/raw_mouse_handler.cpp b/rpcs3/Input/raw_mouse_handler.cpp index 7e7485c675..6d24b46bf9 100644 --- a/rpcs3/Input/raw_mouse_handler.cpp +++ b/rpcs3/Input/raw_mouse_handler.cpp @@ -148,45 +148,29 @@ void raw_mouse::update_values(const RAWMOUSE& state) // Only update the value if either down or up flags are present if ((state.usButtonFlags & btn.down)) { - m_handler->mouse_press_callback(m_device_name, 0, up, true); + m_handler->mouse_press_callback(m_device_name, up, true); } else if ((state.usButtonFlags & btn.up)) { - m_handler->mouse_press_callback(m_device_name, 0, up, false); + m_handler->mouse_press_callback(m_device_name, up, false); } } return; } - const auto get_button_pressed = [this](u8 button, int button_flags) + // Get mouse buttons + for (const auto& [button, btn] : m_buttons) { - const auto it = m_buttons.find(button); - if (it == m_buttons.cend()) return; - - const mouse_button& btn = it->second; - // Only update the value if either down or up flags are present - if ((button_flags & btn.down)) + if ((state.usButtonFlags & btn.down)) { m_handler->Button(m_index, button, true); - m_handler->mouse_press_callback(m_device_name, button, btn.up, true); } - else if ((button_flags & btn.up)) + else if ((state.usButtonFlags & btn.up)) { m_handler->Button(m_index, button, false); - m_handler->mouse_press_callback(m_device_name, button, btn.up, false); } - }; - - // Get mouse buttons - get_button_pressed(CELL_MOUSE_BUTTON_1, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_2, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_3, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_4, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_5, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_6, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_7, state.usButtonFlags); - get_button_pressed(CELL_MOUSE_BUTTON_8, state.usButtonFlags); + } // Get mouse wheel if ((state.usButtonFlags & RI_MOUSE_WHEEL)) diff --git a/rpcs3/Input/raw_mouse_handler.h b/rpcs3/Input/raw_mouse_handler.h index a66efd7286..adef7c5624 100644 --- a/rpcs3/Input/raw_mouse_handler.h +++ b/rpcs3/Input/raw_mouse_handler.h @@ -73,16 +73,16 @@ public: const std::map& get_mice() const { return m_raw_mice; }; - void set_mouse_press_callback(std::function cb) + void set_mouse_press_callback(std::function cb) { m_mouse_press_callback = std::move(cb); } - void mouse_press_callback(const std::string& device_name, s32 cell_code, s32 button_code, bool pressed) + void mouse_press_callback(const std::string& device_name, s32 button_code, bool pressed) { if (m_mouse_press_callback) { - m_mouse_press_callback(device_name, cell_code, button_code, pressed); + m_mouse_press_callback(device_name, button_code, pressed); } } @@ -106,7 +106,7 @@ private: bool m_is_for_gui = false; std::map m_raw_mice; - std::function m_mouse_press_callback; + std::function m_mouse_press_callback; std::unique_ptr>> m_thread; }; diff --git a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp index 7faf4e4c7a..3936598995 100644 --- a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.cpp @@ -70,9 +70,9 @@ raw_mouse_settings_dialog::raw_mouse_settings_dialog(QWidget* parent) g_raw_mouse_handler = std::make_unique(); g_raw_mouse_handler->set_is_for_gui(true); g_raw_mouse_handler->Init(std::max(max_devices, ::size32(g_cfg_raw_mouse.players))); - g_raw_mouse_handler->set_mouse_press_callback([this](const std::string& device_name, s32 cell_code, s32 button_code, bool pressed) + g_raw_mouse_handler->set_mouse_press_callback([this](const std::string& device_name, s32 button_code, bool pressed) { - mouse_press(device_name, cell_code, button_code, pressed); + mouse_press(device_name, button_code, pressed); }); m_buttons = new QButtonGroup(this); @@ -346,7 +346,7 @@ void raw_mouse_settings_dialog::reset_config() } } -void raw_mouse_settings_dialog::mouse_press(const std::string& device_name, s32 /*cell_code*/, s32 button_code, bool pressed) +void raw_mouse_settings_dialog::mouse_press(const std::string& device_name, s32 button_code, bool pressed) { if (m_button_id < 0 || pressed) // Let's only react to mouse releases { diff --git a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.h b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.h index 206c6ec213..d55abf8658 100644 --- a/rpcs3/rpcs3qt/raw_mouse_settings_dialog.h +++ b/rpcs3/rpcs3qt/raw_mouse_settings_dialog.h @@ -30,7 +30,7 @@ private: void on_enumeration(); void reset_config(); void on_button_click(int id); - void mouse_press(const std::string& device_name, s32 cell_code, s32 button_code, bool pressed); + void mouse_press(const std::string& device_name, s32 button_code, bool pressed); void handle_device_change(const std::string& device_name); bool is_device_active(const std::string& device_name); std::string get_current_device_name(int player);