input_common: Release mouse buttons on out of focus
This commit is contained in:
parent
c17a59b58e
commit
6e81473574
|
@ -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) {
|
||||
|
|
Reference in New Issue