@ -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() {
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) {