浏览代码

Merge pull request #26484 from Andrettin/Configurable-Tooltip-Offset

Make the Tooltip Position Offset Configurable
Rémi Verschelde 6 年之前
父节点
当前提交
775e74e0d4
共有 3 个文件被更改,包括 6 次插入1 次删除
  1. 3 0
      doc/classes/ProjectSettings.xml
  2. 1 0
      main/main.cpp
  3. 2 1
      scene/main/viewport.cpp

+ 3 - 0
doc/classes/ProjectSettings.xml

@@ -323,6 +323,9 @@
 		<member name="display/mouse_cursor/custom_image_hotspot" type="Vector2" setter="" getter="">
 		<member name="display/mouse_cursor/custom_image_hotspot" type="Vector2" setter="" getter="">
 			Hotspot for the custom mouse cursor image.
 			Hotspot for the custom mouse cursor image.
 		</member>
 		</member>
+		<member name="display/mouse_cursor/tooltip_position_offset" type="Vector2" setter="" getter="">
+			Position offset for tooltips, relative to the hotspot of the mouse cursor.
+		</member>
 		<member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter="">
 		<member name="display/window/dpi/allow_hidpi" type="bool" setter="" getter="">
 			Allow HiDPI display on Windows and OSX. On Desktop Linux, this can't be enabled or disabled.
 			Allow HiDPI display on Windows and OSX. On Desktop Linux, this can't be enabled or disabled.
 		</member>
 		</member>

+ 1 - 0
main/main.cpp

@@ -1209,6 +1209,7 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
 
 
 	GLOBAL_DEF("display/mouse_cursor/custom_image", String());
 	GLOBAL_DEF("display/mouse_cursor/custom_image", String());
 	GLOBAL_DEF("display/mouse_cursor/custom_image_hotspot", Vector2());
 	GLOBAL_DEF("display/mouse_cursor/custom_image_hotspot", Vector2());
+	GLOBAL_DEF("display/mouse_cursor/tooltip_position_offset", Point2(10, 10));
 	ProjectSettings::get_singleton()->set_custom_property_info("display/mouse_cursor/custom_image", PropertyInfo(Variant::STRING, "display/mouse_cursor/custom_image", PROPERTY_HINT_FILE, "*.png,*.webp"));
 	ProjectSettings::get_singleton()->set_custom_property_info("display/mouse_cursor/custom_image", PropertyInfo(Variant::STRING, "display/mouse_cursor/custom_image", PROPERTY_HINT_FILE, "*.png,*.webp"));
 
 
 	if (String(ProjectSettings::get_singleton()->get("display/mouse_cursor/custom_image")) != String()) {
 	if (String(ProjectSettings::get_singleton()->get("display/mouse_cursor/custom_image")) != String()) {

+ 2 - 1
scene/main/viewport.cpp

@@ -1476,7 +1476,8 @@ void Viewport::_gui_show_tooltip() {
 	gui.tooltip_popup->set_as_toplevel(true);
 	gui.tooltip_popup->set_as_toplevel(true);
 	//gui.tooltip_popup->hide();
 	//gui.tooltip_popup->hide();
 
 
-	Rect2 r(gui.tooltip_pos + Point2(10, 10), gui.tooltip_popup->get_minimum_size());
+	Point2 tooltip_offset = ProjectSettings::get_singleton()->get("display/mouse_cursor/tooltip_position_offset");
+	Rect2 r(gui.tooltip_pos + tooltip_offset, gui.tooltip_popup->get_minimum_size());
 	Rect2 vr = gui.tooltip_popup->get_viewport_rect();
 	Rect2 vr = gui.tooltip_popup->get_viewport_rect();
 	if (r.size.x + r.position.x > vr.size.x)
 	if (r.size.x + r.position.x > vr.size.x)
 		r.position.x = vr.size.x - r.size.x;
 		r.position.x = vr.size.x - r.size.x;