From: DS Date: Wed, 26 Feb 2020 11:18:05 +0000 (+0100) Subject: GUIInventoryList: fix dropping items when clicking outside of formspec window (#9422) X-Git-Tag: 5.2.0~97 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0c08f948d7014e66d5a79d7584c03164af2edd93;p=oweals%2Fminetest.git GUIInventoryList: fix dropping items when clicking outside of formspec window (#9422) --- diff --git a/src/gui/guiInventoryList.cpp b/src/gui/guiInventoryList.cpp index ae7ec0539..536471229 100644 --- a/src/gui/guiInventoryList.cpp +++ b/src/gui/guiInventoryList.cpp @@ -176,7 +176,14 @@ bool GUIInventoryList::OnEvent(const SEvent &event) Environment->getRootGUIElement()->getElementFromPoint( core::position2d(event.MouseInput.X, event.MouseInput.Y)); - bool ret = hovered && hovered->OnEvent(event); + // if the player clicks outside of the formspec window, hovered is not + // m_fs_menu, but some other weird element (with ID -1). we do however need + // hovered to be m_fs_menu as item dropping when clicking outside of the + // formspec window is handled in its OnEvent callback + if (!hovered || hovered->getID() == -1) + hovered = m_fs_menu; + + bool ret = hovered->OnEvent(event); IsVisible = was_visible;