aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <mk939@ymail.com>2020-01-22 20:23:40 +0100
committerSmallJoker <mk939@ymail.com>2020-12-12 20:55:06 +0100
commite18b6c5a21880125284d2a1e9dfb5471d5bc2bec (patch)
treed3ae990077d4c003ea3db2585497ecf02fe12b6f
parentaf073438fd70833955a30bcbe1c22e6f344ec41c (diff)
downloadminetest-e18b6c5a21880125284d2a1e9dfb5471d5bc2bec.tar.gz
minetest-e18b6c5a21880125284d2a1e9dfb5471d5bc2bec.tar.bz2
minetest-e18b6c5a21880125284d2a1e9dfb5471d5bc2bec.zip
GUIFormSpecMenu: Shift+Click listring workaround for MacOS
event.MouseInput.Shift is not implemented for MacOS
-rw-r--r--src/gui/guiFormSpecMenu.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/gui/guiFormSpecMenu.cpp b/src/gui/guiFormSpecMenu.cpp
index 632b15992..74578111e 100644
--- a/src/gui/guiFormSpecMenu.cpp
+++ b/src/gui/guiFormSpecMenu.cpp
@@ -4075,6 +4075,9 @@ enum ButtonEventType : u8
bool GUIFormSpecMenu::OnEvent(const SEvent& event)
{
+ // WORKAROUND: event.MouseInput.Shift is not implemented for MacOS
+ static thread_local bool is_shift_down = false;
+
if (event.EventType==EET_KEY_INPUT_EVENT) {
KeyPress kp(event.KeyInput);
if (event.KeyInput.PressedDown && (
@@ -4084,6 +4087,8 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
return true;
}
+ is_shift_down = event.KeyInput.Shift;
+
if (m_client != NULL && event.KeyInput.PressedDown &&
(kp == getKeySetting("keymap_screenshot"))) {
m_client->makeScreenshot();
@@ -4133,6 +4138,9 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
event.MouseInput.isRightPressed() &&
getItemAtPos(m_pointer).i != getItemAtPos(m_old_pointer).i))) {
+ // WORKAROUND: In case shift was pressed prior showing the formspec
+ is_shift_down |= event.MouseInput.Shift;
+
// Get selected item and hovered/clicked item (s)
m_old_tooltip_id = -1;
@@ -4263,7 +4271,7 @@ bool GUIFormSpecMenu::OnEvent(const SEvent& event)
else // left
count = s_count;
- if (!event.MouseInput.Shift) {
+ if (!is_shift_down) {
// no shift: select item
m_selected_amount = count;
m_selected_dragging = button != BET_WHEEL_DOWN;