Skip to content

Commit

Permalink
GUIFormSpecMenu: Shift+Click listring workaround for MacOS
Browse files Browse the repository at this point in the history
event.MouseInput.Shift is not implemented for MacOS
  • Loading branch information
SmallJoker committed Dec 12, 2020
1 parent af07343 commit e18b6c5
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/gui/guiFormSpecMenu.cpp
Expand Up @@ -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 && (
Expand All @@ -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();
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit e18b6c5

Please sign in to comment.