diff options
author | SmallJoker <mk939@ymail.com> | 2020-01-22 20:23:40 +0100 |
---|---|---|
committer | SmallJoker <mk939@ymail.com> | 2020-12-12 20:55:06 +0100 |
commit | e18b6c5a21880125284d2a1e9dfb5471d5bc2bec (patch) | |
tree | d3ae990077d4c003ea3db2585497ecf02fe12b6f /src | |
parent | af073438fd70833955a30bcbe1c22e6f344ec41c (diff) | |
download | minetest-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
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/guiFormSpecMenu.cpp | 10 |
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; |