Browse Source
Merge pull request #6275 from german77/mousefocus
input_common: Release mouse buttons on out of focus
pull/15/merge
bunnei
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with
18 additions and
1 deletions
-
src/input_common/mouse/mouse_input.cpp
-
src/input_common/mouse/mouse_input.h
-
src/yuzu/bootmanager.cpp
|
|
|
@ -143,6 +143,15 @@ void Mouse::ReleaseButton(MouseButton button_) { |
|
|
|
mouse_info[button_index].data.axis = {0, 0}; |
|
|
|
} |
|
|
|
|
|
|
|
void Mouse::ReleaseAllButtons() { |
|
|
|
buttons = 0; |
|
|
|
for (auto& info : mouse_info) { |
|
|
|
info.tilt_speed = 0; |
|
|
|
info.data.pressed = false; |
|
|
|
info.data.axis = {0, 0}; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void Mouse::BeginConfiguration() { |
|
|
|
buttons = 0; |
|
|
|
last_button = MouseButton::Undefined; |
|
|
|
|
|
|
|
@ -65,10 +65,16 @@ public: |
|
|
|
void MouseMove(int x, int y, int center_x, int center_y); |
|
|
|
|
|
|
|
/** |
|
|
|
* Signals that a motion sensor tilt has ended. |
|
|
|
* Signals that a button is released. |
|
|
|
* @param button_ the button pressed |
|
|
|
*/ |
|
|
|
void ReleaseButton(MouseButton button_); |
|
|
|
|
|
|
|
/** |
|
|
|
* Signals that all buttons are released |
|
|
|
*/ |
|
|
|
void ReleaseAllButtons(); |
|
|
|
|
|
|
|
[[nodiscard]] bool ToggleButton(std::size_t button_); |
|
|
|
[[nodiscard]] bool UnlockButton(std::size_t button_); |
|
|
|
|
|
|
|
|
|
|
|
@ -539,6 +539,8 @@ bool GRenderWindow::event(QEvent* event) { |
|
|
|
void GRenderWindow::focusOutEvent(QFocusEvent* event) { |
|
|
|
QWidget::focusOutEvent(event); |
|
|
|
input_subsystem->GetKeyboard()->ReleaseAllKeys(); |
|
|
|
input_subsystem->GetMouse()->ReleaseAllButtons(); |
|
|
|
this->TouchReleased(0); |
|
|
|
} |
|
|
|
|
|
|
|
void GRenderWindow::resizeEvent(QResizeEvent* event) { |
|
|
|
|