浏览代码

Merge pull request #90639 from YeldhamDev/stay_open_please

Fix submenus erroneously closing on some occasions
Rémi Verschelde 1 年之前
父节点
当前提交
fad6897af0
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      scene/gui/popup_menu.cpp

+ 6 - 0
scene/gui/popup_menu.cpp

@@ -640,11 +640,17 @@ void PopupMenu::_input_from_window_internal(const Ref<InputEvent> &p_event) {
 
 		for (const Rect2 &E : autohide_areas) {
 			if (!Rect2(Point2(), get_size()).has_point(m->get_position()) && E.has_point(m->get_position())) {
+				// The mouse left the safe area, prepare to close.
 				_close_pressed();
 				return;
 			}
 		}
 
+		if (!minimum_lifetime_timer->is_stopped()) {
+			// The mouse left the safe area, but came back again, so cancel the auto-closing.
+			minimum_lifetime_timer->stop();
+		}
+
 		if (!item_clickable_area.has_point(m->get_position())) {
 			return;
 		}