extends Node2D var WindowSize = Vector2(880,620) func _on_panel_gui_input(event): if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT: $ActionMenu.appear() $ActionMenu.get_node("PopupMenu").position = GetPopUpPos() func GetPopUpPos(): var MousePos = get_viewport().get_mouse_position() var PopUpPos = MousePos var MenuSize = get_node("ActionMenu/PopupMenu").size if MenuSize.x + MousePos.x > WindowSize.x: PopUpPos.x -= MenuSize.x if MenuSize.y + MousePos.y > WindowSize.y: PopUpPos.y -= MenuSize.y return PopUpPos