Фикс контекстного меню

Теперь только один слот под активную субменюшку, остальные считаются неактивными и ремуваются. Это решает проблему множества зависших в воздухе subMenu, которые наслаиваются друг на друга
This commit is contained in:
Axeer 2022-08-29 04:58:52 +03:00
parent b0d8e3e704
commit 8ca422cbce

View File

@ -3923,6 +3923,15 @@ end
local function dropDownMenuItemEventHandler(workspace, object, e1, ...) local function dropDownMenuItemEventHandler(workspace, object, e1, ...)
if e1 == "touch" then if e1 == "touch" then
if object.type == 1 and not object.pressed then if object.type == 1 and not object.pressed then
dropDownMenuReleaseItems(object.parent.parent)
if #object.parent.parent.subMenus then
for i, subMenu in ipairs(object.parent.parent.subMenus) do
subMenu:remove()
table.remove(object.parent.parent.subMenus, i)
end
end
object.pressed = true object.pressed = true
workspace:draw() workspace:draw()
@ -3934,7 +3943,7 @@ local function dropDownMenuItemEventHandler(workspace, object, e1, ...)
object.subMenu.localX = object.parent.parent.localX - object.subMenu.width object.subMenu.localX = object.parent.parent.localX - object.subMenu.width
object.parent.parent:moveToFront() object.parent.parent:moveToFront()
end end
table.insert(object.parent.parent.subMenus, object.subMenu)
workspace:draw() workspace:draw()
else else
event.sleep(0.2) event.sleep(0.2)
@ -4133,6 +4142,7 @@ function GUI.dropDownMenu(x, y, width, maximumHeight, itemHeight, backgroundColo
menu.eventHandler = dropDownMenuEventHandler menu.eventHandler = dropDownMenuEventHandler
menu.update = dropDownMenuUpdate menu.update = dropDownMenuUpdate
menu.subMenus = {}
return menu return menu
end end