forked from Mirrorlandia_minetest/minetest
Touchscreen: Abort ongoing short taps if touch interaction mode changes (#14305)
This commit is contained in:
parent
df9975f35d
commit
2b99dabdac
@ -1091,6 +1091,15 @@ void TouchScreenGUI::applyContextControls(const TouchInteractionMode &mode)
|
||||
|
||||
u64 now = porting::getTimeMs();
|
||||
|
||||
// If the meanings of short and long taps have been swapped, abort any ongoing
|
||||
// short taps because they would do something else than the player expected.
|
||||
// Long taps don't need this, they're adjusted to the swapped meanings instead.
|
||||
if (mode != m_last_mode) {
|
||||
m_dig_pressed_until = 0;
|
||||
m_place_pressed_until = 0;
|
||||
}
|
||||
m_last_mode = mode;
|
||||
|
||||
switch (m_tap_state) {
|
||||
case TapState::ShortTap:
|
||||
if (mode == SHORT_DIG_LONG_PLACE) {
|
||||
|
@ -314,6 +314,7 @@ private:
|
||||
|
||||
v2s32 getPointerPos();
|
||||
void emitMouseEvent(EMOUSE_INPUT_EVENT type);
|
||||
TouchInteractionMode m_last_mode = TouchInteractionMode_END;
|
||||
TapState m_tap_state = TapState::None;
|
||||
|
||||
bool m_dig_pressed = false;
|
||||
|
Loading…
Reference in New Issue
Block a user