浏览代码

Fix tooltip message working incorrectly in PopupMenu

fix
requizm 4 年之前
父节点
当前提交
6f3d8fa228
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 1 0
      scene/gui/popup_menu.cpp
  2. 7 0
      scene/main/viewport.cpp

+ 1 - 0
scene/gui/popup_menu.cpp

@@ -228,6 +228,7 @@ void PopupMenu::_activate_submenu(int p_over) {
 	// Set autohide areas
 	PopupMenu *submenu_pum = Object::cast_to<PopupMenu>(submenu_popup);
 	if (submenu_pum) {
+		submenu_pum->take_mouse_focus();
 		// Make the position of the parent popup relative to submenu popup
 		this_rect.position = this_rect.position - submenu_pum->get_position();
 

+ 7 - 0
scene/main/viewport.cpp

@@ -45,6 +45,7 @@
 #include "scene/gui/control.h"
 #include "scene/gui/label.h"
 #include "scene/gui/popup.h"
+#include "scene/gui/popup_menu.h"
 #include "scene/main/canvas_layer.h"
 #include "scene/main/window.h"
 #include "scene/resources/mesh.h"
@@ -1104,6 +1105,12 @@ String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Cont
 	while (p_control) {
 		tooltip = p_control->get_tooltip(pos);
 
+		//Temporary solution for PopupMenus
+		PopupMenu *menu = Object::cast_to<PopupMenu>(this);
+		if (menu) {
+			tooltip = menu->get_tooltip(pos);
+		}
+
 		if (r_tooltip_owner) {
 			*r_tooltip_owner = p_control;
 		}