1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-10-05 19:31:04 +00:00

Simulate all keys being released when when game loses focus (#13336)

This commit is contained in:
Zardshard 2023-04-13 12:06:21 -04:00 committed by GitHub
parent fe75ec8d0d
commit e139749b5c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 44 additions and 8 deletions

View file

@ -124,6 +124,13 @@ public:
push_back(key);
}
void append(const KeyList &other)
{
for (const KeyPress &key : other) {
set(key);
}
}
bool operator[](const KeyPress &key) const { return find(key) != end(); }
};
@ -178,6 +185,12 @@ public:
mouse_wheel = 0;
}
void releaseAllKeys()
{
keyWasReleased.append(keyIsDown);
keyIsDown.clear();
}
void clearWasKeyPressed()
{
keyWasPressed.clear();
@ -263,6 +276,7 @@ public:
virtual void step(float dtime) {}
virtual void clear() {}
virtual void releaseAllKeys() {}
JoystickController joystick;
KeyCache keycache;
@ -395,6 +409,12 @@ public:
m_receiver->clearInput();
}
void releaseAllKeys()
{
joystick.releaseAllKeys();
m_receiver->releaseAllKeys();
}
private:
MyEventReceiver *m_receiver = nullptr;
v2s32 m_mousepos;