Bläddra i källkod

Merge pull request #103653 from dugramen/popup_respect_scale

Apply transforms for LineEdit, RichTextLabel, and TextEdit popup positions
Rémi Verschelde 4 månader sedan
förälder
incheckning
cbb1e0ef7a
3 ändrade filer med 5 tillägg och 5 borttagningar
  1. 2 2
      scene/gui/line_edit.cpp
  2. 1 1
      scene/gui/rich_text_label.cpp
  3. 2 2
      scene/gui/text_edit.cpp

+ 2 - 2
scene/gui/line_edit.cpp

@@ -399,7 +399,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
 
 			if (context_menu_enabled) {
 				_update_context_menu();
-				menu->set_position(get_screen_position() + get_local_mouse_position());
+				menu->set_position(get_screen_transform().xform(get_local_mouse_position()));
 				menu->reset_size();
 				menu->popup();
 			}
@@ -630,7 +630,7 @@ void LineEdit::gui_input(const Ref<InputEvent> &p_event) {
 		if (k->is_action("ui_menu", true)) {
 			_update_context_menu();
 			Point2 pos = Point2(get_caret_pixel_pos().x, (get_size().y + theme_cache.font->get_height(theme_cache.font_size)) / 2);
-			menu->set_position(get_screen_position() + pos);
+			menu->set_position(get_screen_transform().xform(pos));
 			menu->reset_size();
 			menu->popup();
 			menu->grab_focus();

+ 1 - 1
scene/gui/rich_text_label.cpp

@@ -2189,7 +2189,7 @@ void RichTextLabel::gui_input(const Ref<InputEvent> &p_event) {
 
 		if (b->get_button_index() == MouseButton::RIGHT && context_menu_enabled) {
 			_update_context_menu();
-			menu->set_position(get_screen_position() + b->get_position());
+			menu->set_position(get_screen_transform().xform(b->get_position()));
 			menu->reset_size();
 			menu->popup();
 			grab_focus();

+ 2 - 2
scene/gui/text_edit.cpp

@@ -2006,7 +2006,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
 
 				if (context_menu_enabled) {
 					_update_context_menu();
-					menu->set_position(get_screen_position() + mpos);
+					menu->set_position(get_screen_transform().xform(mpos));
 					menu->reset_size();
 					menu->popup();
 					grab_focus();
@@ -2291,7 +2291,7 @@ void TextEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
 			if (context_menu_enabled) {
 				_update_context_menu();
 				adjust_viewport_to_caret();
-				menu->set_position(get_screen_position() + get_caret_draw_pos());
+				menu->set_position(get_screen_transform().xform(get_caret_draw_pos()));
 				menu->reset_size();
 				menu->popup();
 				menu->grab_focus();