Browse Source

classref: Sync with current master branch (74de05a)

Godot Organization 10 months ago
parent
commit
61df7cf01e

+ 13 - 0
classes/class_compositoreffect.rst

@@ -264,6 +264,19 @@ If ``true`` this triggers normal and roughness data to be output during our dept
     var render_scene_buffers : RenderSceneBuffersRD = render_data.get_render_scene_buffers()
     var render_scene_buffers : RenderSceneBuffersRD = render_data.get_render_scene_buffers()
     var roughness_buffer = render_scene_buffers.get_texture("forward_clustered", "normal_roughness")
     var roughness_buffer = render_scene_buffers.get_texture("forward_clustered", "normal_roughness")
 
 
+The raw normal and roughness buffer is stored in an optimized format, different than the one available in Spatial shaders. When sampling the buffer, a conversion function must be applied. Use this function, copied from `here <https://github.com/godotengine/godot/blob/da5f39889f155658cef7f7ec3cc1abb94e17d815/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered_inc.glsl#L334-L341>`__:
+
+::
+
+    vec4 normal_roughness_compatibility(vec4 p_normal_roughness) {
+        float roughness = p_normal_roughness.w;
+        if (roughness > 0.5) {
+            roughness = 1.0 - roughness;
+        }
+        roughness /= (127.0 / 255.0);
+        return vec4(normalize(p_normal_roughness.xyz * 2.0 - 1.0) * 0.5 + 0.5, roughness);
+    }
+
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
 ----
 ----

+ 83 - 16
classes/class_editorcontextmenuplugin.rst

@@ -31,13 +31,62 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void| | :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>`\ (\ paths\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual|                                                                                                                            |
-   +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void| | :ref:`add_context_menu_item<class_EditorContextMenuPlugin_method_add_context_menu_item>`\ (\ name\: :ref:`String<class_String>`, callback\: :ref:`Callable<class_Callable>`, icon\: :ref:`Texture2D<class_Texture2D>` = null, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) |
-   +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void| | :ref:`add_menu_shortcut<class_EditorContextMenuPlugin_method_add_menu_shortcut>`\ (\ shortcut\: :ref:`Shortcut<class_Shortcut>`, callback\: :ref:`Callable<class_Callable>`\ )                                                                                                     |
-   +--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void| | :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>`\ (\ paths\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual|                                                                                                     |
+   +--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void| | :ref:`add_context_menu_item<class_EditorContextMenuPlugin_method_add_context_menu_item>`\ (\ name\: :ref:`String<class_String>`, callback\: :ref:`Callable<class_Callable>`, icon\: :ref:`Texture2D<class_Texture2D>` = null\ )                             |
+   +--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void| | :ref:`add_context_menu_item_from_shortcut<class_EditorContextMenuPlugin_method_add_context_menu_item_from_shortcut>`\ (\ name\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>`, icon\: :ref:`Texture2D<class_Texture2D>` = null\ ) |
+   +--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void| | :ref:`add_menu_shortcut<class_EditorContextMenuPlugin_method_add_menu_shortcut>`\ (\ shortcut\: :ref:`Shortcut<class_Shortcut>`, callback\: :ref:`Callable<class_Callable>`\ )                                                                              |
+   +--------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+
+.. rst-class:: classref-section-separator
+
+----
+
+.. rst-class:: classref-descriptions-group
+
+Enumerations
+------------
+
+.. _enum_EditorContextMenuPlugin_ContextMenuSlot:
+
+.. rst-class:: classref-enumeration
+
+enum **ContextMenuSlot**: :ref:`🔗<enum_EditorContextMenuPlugin_ContextMenuSlot>`
+
+.. _class_EditorContextMenuPlugin_constant_CONTEXT_SLOT_SCENE_TREE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>` **CONTEXT_SLOT_SCENE_TREE** = ``0``
+
+Context menu of Scene dock. :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>` will be called with a list of paths to currently selected nodes, while option callback will receive the list of currently selected nodes.
+
+.. _class_EditorContextMenuPlugin_constant_CONTEXT_SLOT_FILESYSTEM:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>` **CONTEXT_SLOT_FILESYSTEM** = ``1``
+
+Context menu of FileSystem dock. :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>` and option callback will be called with list of paths of the currently selected files.
+
+.. _class_EditorContextMenuPlugin_constant_CONTEXT_SLOT_FILESYSTEM_CREATE:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>` **CONTEXT_SLOT_FILESYSTEM_CREATE** = ``3``
+
+The "Create..." submenu of FileSystem dock's context menu. :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>` and option callback will be called with list of paths of the currently selected files.
+
+.. _class_EditorContextMenuPlugin_constant_CONTEXT_SLOT_SCRIPT_EDITOR:
+
+.. rst-class:: classref-enumeration-constant
+
+:ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>` **CONTEXT_SLOT_SCRIPT_EDITOR** = ``2``
+
+Context menu of Scene dock. :ref:`_popup_menu<class_EditorContextMenuPlugin_private_method__popup_menu>` will be called with the path to the currently edited script, while option callback will receive reference to that script.
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -54,7 +103,7 @@ Method Descriptions
 
 
 |void| **_popup_menu**\ (\ paths\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual| :ref:`🔗<class_EditorContextMenuPlugin_private_method__popup_menu>`
 |void| **_popup_menu**\ (\ paths\: :ref:`PackedStringArray<class_PackedStringArray>`\ ) |virtual| :ref:`🔗<class_EditorContextMenuPlugin_private_method__popup_menu>`
 
 
-Called when creating a context menu, custom options can be added by using the :ref:`add_context_menu_item<class_EditorContextMenuPlugin_method_add_context_menu_item>` function.
+Called when creating a context menu, custom options can be added by using the :ref:`add_context_menu_item<class_EditorContextMenuPlugin_method_add_context_menu_item>` or :ref:`add_context_menu_item_from_shortcut<class_EditorContextMenuPlugin_method_add_context_menu_item_from_shortcut>` functions. ``paths`` contains currently selected paths (depending on menu), which can be used to conditionally add options.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -64,17 +113,37 @@ Called when creating a context menu, custom options can be added by using the :r
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-|void| **add_context_menu_item**\ (\ name\: :ref:`String<class_String>`, callback\: :ref:`Callable<class_Callable>`, icon\: :ref:`Texture2D<class_Texture2D>` = null, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ ) :ref:`🔗<class_EditorContextMenuPlugin_method_add_context_menu_item>`
-
-Add custom options to the context menu of the currently specified slot.
+|void| **add_context_menu_item**\ (\ name\: :ref:`String<class_String>`, callback\: :ref:`Callable<class_Callable>`, icon\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_EditorContextMenuPlugin_method_add_context_menu_item>`
 
 
-To trigger a ``shortcut`` before the context menu is created, please additionally call the :ref:`add_menu_shortcut<class_EditorContextMenuPlugin_method_add_menu_shortcut>` function.
+Add custom option to the context menu of the plugin's specified slot. When the option is activated, ``callback`` will be called. Callback should take single :ref:`Array<class_Array>` argument; array contents depend on context menu slot.
 
 
 ::
 ::
 
 
     func _popup_menu(paths):
     func _popup_menu(paths):
         add_context_menu_item("File Custom options", handle, ICON)
         add_context_menu_item("File Custom options", handle, ICON)
 
 
+If you want to assign shortcut to the menu item, use :ref:`add_context_menu_item_from_shortcut<class_EditorContextMenuPlugin_method_add_context_menu_item_from_shortcut>` instead.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_EditorContextMenuPlugin_method_add_context_menu_item_from_shortcut:
+
+.. rst-class:: classref-method
+
+|void| **add_context_menu_item_from_shortcut**\ (\ name\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>`, icon\: :ref:`Texture2D<class_Texture2D>` = null\ ) :ref:`🔗<class_EditorContextMenuPlugin_method_add_context_menu_item_from_shortcut>`
+
+Add custom option to the context menu of the plugin's specified slot. The option will have the ``shortcut`` assigned and reuse its callback. The shortcut has to be registered beforehand with :ref:`add_menu_shortcut<class_EditorContextMenuPlugin_method_add_menu_shortcut>`.
+
+::
+
+    func _init():
+        add_menu_shortcut(SHORTCUT, handle)
+    
+    func _popup_menu(paths):
+        add_context_menu_item_from_shortcut("File Custom options", SHORTCUT, ICON)
+
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
 ----
 ----
@@ -85,14 +154,12 @@ To trigger a ``shortcut`` before the context menu is created, please additionall
 
 
 |void| **add_menu_shortcut**\ (\ shortcut\: :ref:`Shortcut<class_Shortcut>`, callback\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_EditorContextMenuPlugin_method_add_menu_shortcut>`
 |void| **add_menu_shortcut**\ (\ shortcut\: :ref:`Shortcut<class_Shortcut>`, callback\: :ref:`Callable<class_Callable>`\ ) :ref:`🔗<class_EditorContextMenuPlugin_method_add_menu_shortcut>`
 
 
-To register the shortcut for the context menu, call this function within the :ref:`Object._init<class_Object_private_method__init>` function, even if the context menu has not been created yet.
-
-Note that this method should only be invoked from :ref:`Object._init<class_Object_private_method__init>`; otherwise, the shortcut will not be registered correctly.
+Registers a shortcut associated with the plugin's context menu. This method should be called once (e.g. in plugin's :ref:`Object._init<class_Object_private_method__init>`). ``callback`` will be called when user presses the specified ``shortcut`` while the menu's context is in effect (e.g. FileSystem dock is focused). Callback should take single :ref:`Array<class_Array>` argument; array contents depend on context menu slot.
 
 
 ::
 ::
 
 
     func _init():
     func _init():
-        add_menu_shortcut(SHORTCUT, handle);
+        add_menu_shortcut(SHORTCUT, handle)
 
 
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`

+ 7 - 49
classes/class_editorplugin.rst

@@ -89,7 +89,7 @@ Methods
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                    | :ref:`add_autoload_singleton<class_EditorPlugin_method_add_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`, path\: :ref:`String<class_String>`\ )                                                                                          |
    | |void|                                                    | :ref:`add_autoload_singleton<class_EditorPlugin_method_add_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`, path\: :ref:`String<class_String>`\ )                                                                                          |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                    | :ref:`add_context_menu_plugin<class_EditorPlugin_method_add_context_menu_plugin>`\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ )                      |
+   | |void|                                                    | :ref:`add_context_menu_plugin<class_EditorPlugin_method_add_context_menu_plugin>`\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ )           |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Button<class_Button>`                               | :ref:`add_control_to_bottom_panel<class_EditorPlugin_method_add_control_to_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`, title\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ )                       |
    | :ref:`Button<class_Button>`                               | :ref:`add_control_to_bottom_panel<class_EditorPlugin_method_add_control_to_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`, title\: :ref:`String<class_String>`, shortcut\: :ref:`Shortcut<class_Shortcut>` = null\ )                       |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -143,7 +143,7 @@ Methods
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                    | :ref:`remove_autoload_singleton<class_EditorPlugin_method_remove_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`\ )                                                                                                                        |
    | |void|                                                    | :ref:`remove_autoload_singleton<class_EditorPlugin_method_remove_autoload_singleton>`\ (\ name\: :ref:`String<class_String>`\ )                                                                                                                        |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | |void|                                                    | :ref:`remove_context_menu_plugin<class_EditorPlugin_method_remove_context_menu_plugin>`\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ )                |
+   | |void|                                                    | :ref:`remove_context_menu_plugin<class_EditorPlugin_method_remove_context_menu_plugin>`\ (\ plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ )                                                                                  |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                    | :ref:`remove_control_from_bottom_panel<class_EditorPlugin_method_remove_control_from_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`\ )                                                                                                     |
    | |void|                                                    | :ref:`remove_control_from_bottom_panel<class_EditorPlugin_method_remove_control_from_bottom_panel>`\ (\ control\: :ref:`Control<class_Control>`\ )                                                                                                     |
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@@ -492,48 +492,6 @@ Prevents the :ref:`InputEvent<class_InputEvent>` from reaching other Editor clas
 
 
 Pass the :ref:`InputEvent<class_InputEvent>` to other editor plugins except the main :ref:`Node3D<class_Node3D>` one. This can be used to prevent node selection changes and work with sub-gizmos instead.
 Pass the :ref:`InputEvent<class_InputEvent>` to other editor plugins except the main :ref:`Node3D<class_Node3D>` one. This can be used to prevent node selection changes and work with sub-gizmos instead.
 
 
-.. rst-class:: classref-item-separator
-
-----
-
-.. _enum_EditorPlugin_ContextMenuSlot:
-
-.. rst-class:: classref-enumeration
-
-enum **ContextMenuSlot**: :ref:`🔗<enum_EditorPlugin_ContextMenuSlot>`
-
-.. _class_EditorPlugin_constant_CONTEXT_SLOT_SCENE_TREE:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>` **CONTEXT_SLOT_SCENE_TREE** = ``0``
-
-Context menu slot for the SceneTree.
-
-.. _class_EditorPlugin_constant_CONTEXT_SLOT_FILESYSTEM:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>` **CONTEXT_SLOT_FILESYSTEM** = ``1``
-
-Context menu slot for the FileSystem.
-
-.. _class_EditorPlugin_constant_CONTEXT_SLOT_SCRIPT_EDITOR:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>` **CONTEXT_SLOT_SCRIPT_EDITOR** = ``2``
-
-Context menu slot for the ScriptEditor file list.
-
-.. _class_EditorPlugin_constant_CONTEXT_SUBMENU_SLOT_FILESYSTEM_CREATE:
-
-.. rst-class:: classref-enumeration-constant
-
-:ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>` **CONTEXT_SUBMENU_SLOT_FILESYSTEM_CREATE** = ``3``
-
-Context menu slot for the FileSystem create submenu.
-
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
 ----
 ----
@@ -1135,11 +1093,11 @@ Adds a script at ``path`` to the Autoload list as ``name``.
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-|void| **add_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_context_menu_plugin>`
+|void| **add_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_add_context_menu_plugin>`
 
 
-Adds a plugin to the context menu. ``slot`` is the position in the context menu where the plugin will be added.
+Adds a plugin to the context menu. ``slot`` is the context menu where the plugin will be added.
 
 
-Context menus are supported for three commonly used areas: the file system, scene tree, and editor script list panel.
+See :ref:`ContextMenuSlot<enum_EditorContextMenuPlugin_ContextMenuSlot>` for available context menus. A plugin instance can belong only to a single context menu slot.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1525,9 +1483,9 @@ Removes an Autoload ``name`` from the list.
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
 
 
-|void| **remove_context_menu_plugin**\ (\ slot\: :ref:`ContextMenuSlot<enum_EditorPlugin_ContextMenuSlot>`, plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_context_menu_plugin>`
+|void| **remove_context_menu_plugin**\ (\ plugin\: :ref:`EditorContextMenuPlugin<class_EditorContextMenuPlugin>`\ ) :ref:`🔗<class_EditorPlugin_method_remove_context_menu_plugin>`
 
 
-Removes a context menu plugin from the specified slot.
+Removes the specified context menu plugin.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 

File diff suppressed because it is too large
+ 681 - 41
classes/class_editorsettings.rst


+ 83 - 1
classes/class_lineedit.rst

@@ -22,7 +22,21 @@ An input field for single-line text.
 Description
 Description
 -----------
 -----------
 
 
-**LineEdit** provides an input field for editing a single line of text. It features many built-in shortcuts that are always available (:kbd:`Ctrl` here maps to :kbd:`Cmd` on macOS):
+**LineEdit** provides an input field for editing a single line of text.
+
+- When the **LineEdit** control is focused using the keyboard arrow keys, it will only gain focus and not enter edit mode.
+
+- To enter edit mode, click on the control with the mouse or press the "ui_text_submit" action (default: :kbd:`Enter` or :kbd:`Kp Enter`).
+
+- To exit edit mode, press "ui_text_submit" or "ui_cancel" (default: :kbd:`Escape`) actions.
+
+- Check :ref:`is_editing<class_LineEdit_method_is_editing>` and :ref:`editing_toggled<class_LineEdit_signal_editing_toggled>` for more information.
+
+\ **Important:**\ 
+
+- Focusing the **LineEdit** with "ui_focus_next" (default: :kbd:`Tab`) or "ui_focus_prev" (default: :kbd:`Shift + Tab`) or :ref:`Control.grab_focus<class_Control_method_grab_focus>` still enters edit mode (for compatibility).
+
+\ **LineEdit** features many built-in shortcuts that are always available (:kbd:`Ctrl` here maps to :kbd:`Cmd` on macOS):
 
 
 - :kbd:`Ctrl + C`: Copy
 - :kbd:`Ctrl + C`: Copy
 
 
@@ -148,6 +162,10 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                            | :ref:`apply_ime<class_LineEdit_method_apply_ime>`\ (\ )                                                                             |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                            | :ref:`cancel_ime<class_LineEdit_method_cancel_ime>`\ (\ )                                                                           |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                            | :ref:`clear<class_LineEdit_method_clear>`\ (\ )                                                                                     |
    | |void|                            | :ref:`clear<class_LineEdit_method_clear>`\ (\ )                                                                                     |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
@@ -167,10 +185,14 @@ Methods
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`             | :ref:`get_selection_to_column<class_LineEdit_method_get_selection_to_column>`\ (\ ) |const|                                         |
    | :ref:`int<class_int>`             | :ref:`get_selection_to_column<class_LineEdit_method_get_selection_to_column>`\ (\ ) |const|                                         |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`           | :ref:`has_ime_text<class_LineEdit_method_has_ime_text>`\ (\ ) |const|                                                               |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`           | :ref:`has_selection<class_LineEdit_method_has_selection>`\ (\ ) |const|                                                             |
    | :ref:`bool<class_bool>`           | :ref:`has_selection<class_LineEdit_method_has_selection>`\ (\ ) |const|                                                             |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                            | :ref:`insert_text_at_caret<class_LineEdit_method_insert_text_at_caret>`\ (\ text\: :ref:`String<class_String>`\ )                   |
    | |void|                            | :ref:`insert_text_at_caret<class_LineEdit_method_insert_text_at_caret>`\ (\ text\: :ref:`String<class_String>`\ )                   |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`           | :ref:`is_editing<class_LineEdit_method_is_editing>`\ (\ ) |const|                                                                   |
+   +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`           | :ref:`is_menu_visible<class_LineEdit_method_is_menu_visible>`\ (\ ) |const|                                                         |
    | :ref:`bool<class_bool>`           | :ref:`is_menu_visible<class_LineEdit_method_is_menu_visible>`\ (\ ) |const|                                                         |
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                            | :ref:`menu_option<class_LineEdit_method_menu_option>`\ (\ option\: :ref:`int<class_int>`\ )                                         |
    | |void|                            | :ref:`menu_option<class_LineEdit_method_menu_option>`\ (\ option\: :ref:`int<class_int>`\ )                                         |
@@ -235,6 +257,18 @@ Theme Properties
 Signals
 Signals
 -------
 -------
 
 
+.. _class_LineEdit_signal_editing_toggled:
+
+.. rst-class:: classref-signal
+
+**editing_toggled**\ (\ toggled_on\: :ref:`bool<class_bool>`\ ) :ref:`🔗<class_LineEdit_signal_editing_toggled>`
+
+Emitted when the **LineEdit** switches in or out of edit mode.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_LineEdit_signal_text_change_rejected:
 .. _class_LineEdit_signal_text_change_rejected:
 
 
 .. rst-class:: classref-signal
 .. rst-class:: classref-signal
@@ -1167,6 +1201,30 @@ Specifies the type of virtual keyboard to show.
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
+.. _class_LineEdit_method_apply_ime:
+
+.. rst-class:: classref-method
+
+|void| **apply_ime**\ (\ ) :ref:`🔗<class_LineEdit_method_apply_ime>`
+
+Applies text from the `Input Method Editor <https://en.wikipedia.org/wiki/Input_method>`__ (IME) and closes the IME if it is open.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_LineEdit_method_cancel_ime:
+
+.. rst-class:: classref-method
+
+|void| **cancel_ime**\ (\ ) :ref:`🔗<class_LineEdit_method_cancel_ime>`
+
+Closes the `Input Method Editor <https://en.wikipedia.org/wiki/Input_method>`__ (IME) if it is open. Any text in the IME will be lost.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_LineEdit_method_clear:
 .. _class_LineEdit_method_clear:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -1322,6 +1380,18 @@ Returns the selection end column.
 
 
 ----
 ----
 
 
+.. _class_LineEdit_method_has_ime_text:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **has_ime_text**\ (\ ) |const| :ref:`🔗<class_LineEdit_method_has_ime_text>`
+
+Returns ``true`` if the user has text in the `Input Method Editor <https://en.wikipedia.org/wiki/Input_method>`__ (IME).
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_LineEdit_method_has_selection:
 .. _class_LineEdit_method_has_selection:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -1346,6 +1416,18 @@ Inserts ``text`` at the caret. If the resulting value is longer than :ref:`max_l
 
 
 ----
 ----
 
 
+.. _class_LineEdit_method_is_editing:
+
+.. rst-class:: classref-method
+
+:ref:`bool<class_bool>` **is_editing**\ (\ ) |const| :ref:`🔗<class_LineEdit_method_is_editing>`
+
+Returns whether the **LineEdit** is being edited.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_LineEdit_method_is_menu_visible:
 .. _class_LineEdit_method_is_menu_visible:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 16 - 2
classes/class_navigationserver2d.rst

@@ -253,6 +253,8 @@ Methods
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                               | :ref:`region_create<class_NavigationServer2D_method_region_create>`\ (\ )                                                                                                                                                                                                                                                                                                             |
    | :ref:`RID<class_RID>`                               | :ref:`region_create<class_NavigationServer2D_method_region_create>`\ (\ )                                                                                                                                                                                                                                                                                                             |
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`                       | :ref:`region_get_closest_point<class_NavigationServer2D_method_region_get_closest_point>`\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const|                                                                                                                                                                                                     |
+   +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2<class_Vector2>`                       | :ref:`region_get_connection_pathway_end<class_NavigationServer2D_method_region_get_connection_pathway_end>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                         |
    | :ref:`Vector2<class_Vector2>`                       | :ref:`region_get_connection_pathway_end<class_NavigationServer2D_method_region_get_connection_pathway_end>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                         |
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector2<class_Vector2>`                       | :ref:`region_get_connection_pathway_start<class_NavigationServer2D_method_region_get_connection_pathway_start>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                     |
    | :ref:`Vector2<class_Vector2>`                       | :ref:`region_get_connection_pathway_start<class_NavigationServer2D_method_region_get_connection_pathway_start>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                     |
@@ -1104,7 +1106,7 @@ Returns the map cell size used to rasterize the navigation mesh vertices.
 
 
 :ref:`Vector2<class_Vector2>` **map_get_closest_point**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_NavigationServer2D_method_map_get_closest_point>`
 :ref:`Vector2<class_Vector2>` **map_get_closest_point**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_NavigationServer2D_method_map_get_closest_point>`
 
 
-Returns the point closest to the provided ``to_point`` on the navigation mesh surface.
+Returns the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``map``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1116,7 +1118,7 @@ Returns the point closest to the provided ``to_point`` on the navigation mesh su
 
 
 :ref:`RID<class_RID>` **map_get_closest_point_owner**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_NavigationServer2D_method_map_get_closest_point_owner>`
 :ref:`RID<class_RID>` **map_get_closest_point_owner**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_NavigationServer2D_method_map_get_closest_point_owner>`
 
 
-Returns the owner region RID for the point returned by :ref:`map_get_closest_point<class_NavigationServer2D_method_map_get_closest_point>`.
+Returns the owner region RID for the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``map``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1552,6 +1554,18 @@ Creates a new region.
 
 
 ----
 ----
 
 
+.. _class_NavigationServer2D_method_region_get_closest_point:
+
+.. rst-class:: classref-method
+
+:ref:`Vector2<class_Vector2>` **region_get_closest_point**\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector2<class_Vector2>`\ ) |const| :ref:`🔗<class_NavigationServer2D_method_region_get_closest_point>`
+
+Returns the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``region``.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_NavigationServer2D_method_region_get_connection_pathway_end:
 .. _class_NavigationServer2D_method_region_get_connection_pathway_end:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 50 - 4
classes/class_navigationserver3d.rst

@@ -289,6 +289,12 @@ Methods
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`RID<class_RID>`                               | :ref:`region_create<class_NavigationServer3D_method_region_create>`\ (\ )                                                                                                                                                                                                                                                                                                    |
    | :ref:`RID<class_RID>`                               | :ref:`region_create<class_NavigationServer3D_method_region_create>`\ (\ )                                                                                                                                                                                                                                                                                                    |
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_closest_point<class_NavigationServer3D_method_region_get_closest_point>`\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const|                                                                                                                                                                                            |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_closest_point_normal<class_NavigationServer3D_method_region_get_closest_point_normal>`\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const|                                                                                                                                                                              |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_closest_point_to_segment<class_NavigationServer3D_method_region_get_closest_point_to_segment>`\ (\ region\: :ref:`RID<class_RID>`, start\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`, use_collision\: :ref:`bool<class_bool>` = false\ ) |const|                                                                                   |
+   +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_connection_pathway_end<class_NavigationServer3D_method_region_get_connection_pathway_end>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                |
    | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_connection_pathway_end<class_NavigationServer3D_method_region_get_connection_pathway_end>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                                |
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-----------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_connection_pathway_start<class_NavigationServer3D_method_region_get_connection_pathway_start>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                            |
    | :ref:`Vector3<class_Vector3>`                       | :ref:`region_get_connection_pathway_start<class_NavigationServer3D_method_region_get_connection_pathway_start>`\ (\ region\: :ref:`RID<class_RID>`, connection\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                                            |
@@ -1325,7 +1331,7 @@ Returns the map cell size used to rasterize the navigation mesh vertices on the
 
 
 :ref:`Vector3<class_Vector3>` **map_get_closest_point**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point>`
 :ref:`Vector3<class_Vector3>` **map_get_closest_point**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point>`
 
 
-Returns the point closest to the provided ``to_point`` on the navigation mesh surface.
+Returns the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``map``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1337,7 +1343,7 @@ Returns the point closest to the provided ``to_point`` on the navigation mesh su
 
 
 :ref:`Vector3<class_Vector3>` **map_get_closest_point_normal**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_normal>`
 :ref:`Vector3<class_Vector3>` **map_get_closest_point_normal**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_normal>`
 
 
-Returns the normal for the point returned by :ref:`map_get_closest_point<class_NavigationServer3D_method_map_get_closest_point>`.
+Returns the navigation mesh surface normal closest to the provided ``to_point`` on the navigation ``map``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1349,7 +1355,7 @@ Returns the normal for the point returned by :ref:`map_get_closest_point<class_N
 
 
 :ref:`RID<class_RID>` **map_get_closest_point_owner**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_owner>`
 :ref:`RID<class_RID>` **map_get_closest_point_owner**\ (\ map\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_owner>`
 
 
-Returns the owner region RID for the point returned by :ref:`map_get_closest_point<class_NavigationServer3D_method_map_get_closest_point>`.
+Returns the owner region RID for the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``map``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1361,7 +1367,9 @@ Returns the owner region RID for the point returned by :ref:`map_get_closest_poi
 
 
 :ref:`Vector3<class_Vector3>` **map_get_closest_point_to_segment**\ (\ map\: :ref:`RID<class_RID>`, start\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`, use_collision\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_to_segment>`
 :ref:`Vector3<class_Vector3>` **map_get_closest_point_to_segment**\ (\ map\: :ref:`RID<class_RID>`, start\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`, use_collision\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_NavigationServer3D_method_map_get_closest_point_to_segment>`
 
 
-Returns the closest point between the navigation surface and the segment.
+Returns the navigation mesh surface point closest to the provided ``start`` and ``end`` segment on the navigation ``map``.
+
+If ``use_collision`` is ``true``, a closest point test is only done when the segment intersects with the navigation mesh surface.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1919,6 +1927,44 @@ Creates a new region.
 
 
 ----
 ----
 
 
+.. _class_NavigationServer3D_method_region_get_closest_point:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **region_get_closest_point**\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_region_get_closest_point>`
+
+Returns the navigation mesh surface point closest to the provided ``to_point`` on the navigation ``region``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_NavigationServer3D_method_region_get_closest_point_normal:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **region_get_closest_point_normal**\ (\ region\: :ref:`RID<class_RID>`, to_point\: :ref:`Vector3<class_Vector3>`\ ) |const| :ref:`🔗<class_NavigationServer3D_method_region_get_closest_point_normal>`
+
+Returns the navigation mesh surface normal closest to the provided ``to_point`` on the navigation ``region``.
+
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_NavigationServer3D_method_region_get_closest_point_to_segment:
+
+.. rst-class:: classref-method
+
+:ref:`Vector3<class_Vector3>` **region_get_closest_point_to_segment**\ (\ region\: :ref:`RID<class_RID>`, start\: :ref:`Vector3<class_Vector3>`, end\: :ref:`Vector3<class_Vector3>`, use_collision\: :ref:`bool<class_bool>` = false\ ) |const| :ref:`🔗<class_NavigationServer3D_method_region_get_closest_point_to_segment>`
+
+Returns the navigation mesh surface point closest to the provided ``start`` and ``end`` segment on the navigation ``region``.
+
+If ``use_collision`` is ``true``, a closest point test is only done when the segment intersects with the navigation mesh surface.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_NavigationServer3D_method_region_get_connection_pathway_end:
 .. _class_NavigationServer3D_method_region_get_connection_pathway_end:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 15 - 13
classes/class_node2d.rst

@@ -118,7 +118,7 @@ Property Descriptions
 - |void| **set_global_position**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - |void| **set_global_position**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - :ref:`Vector2<class_Vector2>` **get_global_position**\ (\ )
 - :ref:`Vector2<class_Vector2>` **get_global_position**\ (\ )
 
 
-Global position.
+Global position. See also :ref:`position<class_Node2D_property_position>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -135,7 +135,7 @@ Global position.
 - |void| **set_global_rotation**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_global_rotation**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_global_rotation**\ (\ )
 - :ref:`float<class_float>` **get_global_rotation**\ (\ )
 
 
-Global rotation in radians.
+Global rotation in radians. See also :ref:`rotation<class_Node2D_property_rotation>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -152,7 +152,7 @@ Global rotation in radians.
 - |void| **set_global_rotation_degrees**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_global_rotation_degrees**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_global_rotation_degrees**\ (\ )
 - :ref:`float<class_float>` **get_global_rotation_degrees**\ (\ )
 
 
-Helper property to access :ref:`global_rotation<class_Node2D_property_global_rotation>` in degrees instead of radians.
+Helper property to access :ref:`global_rotation<class_Node2D_property_global_rotation>` in degrees instead of radians. See also :ref:`rotation_degrees<class_Node2D_property_rotation_degrees>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -169,7 +169,7 @@ Helper property to access :ref:`global_rotation<class_Node2D_property_global_rot
 - |void| **set_global_scale**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - |void| **set_global_scale**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - :ref:`Vector2<class_Vector2>` **get_global_scale**\ (\ )
 - :ref:`Vector2<class_Vector2>` **get_global_scale**\ (\ )
 
 
-Global scale.
+Global scale. See also :ref:`scale<class_Node2D_property_scale>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -186,7 +186,7 @@ Global scale.
 - |void| **set_global_skew**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_global_skew**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_global_skew**\ (\ )
 - :ref:`float<class_float>` **get_global_skew**\ (\ )
 
 
-Global skew in radians.
+Global skew in radians. See also :ref:`skew<class_Node2D_property_skew>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -203,7 +203,7 @@ Global skew in radians.
 - |void| **set_global_transform**\ (\ value\: :ref:`Transform2D<class_Transform2D>`\ )
 - |void| **set_global_transform**\ (\ value\: :ref:`Transform2D<class_Transform2D>`\ )
 - :ref:`Transform2D<class_Transform2D>` **get_global_transform**\ (\ )
 - :ref:`Transform2D<class_Transform2D>` **get_global_transform**\ (\ )
 
 
-Global :ref:`Transform2D<class_Transform2D>`.
+Global :ref:`Transform2D<class_Transform2D>`. See also :ref:`transform<class_Node2D_property_transform>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -220,7 +220,7 @@ Global :ref:`Transform2D<class_Transform2D>`.
 - |void| **set_position**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - |void| **set_position**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - :ref:`Vector2<class_Vector2>` **get_position**\ (\ )
 - :ref:`Vector2<class_Vector2>` **get_position**\ (\ )
 
 
-Position, relative to the node's parent.
+Position, relative to the node's parent. See also :ref:`global_position<class_Node2D_property_global_position>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -237,7 +237,7 @@ Position, relative to the node's parent.
 - |void| **set_rotation**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_rotation**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_rotation**\ (\ )
 - :ref:`float<class_float>` **get_rotation**\ (\ )
 
 
-Rotation in radians, relative to the node's parent.
+Rotation in radians, relative to the node's parent. See also :ref:`global_rotation<class_Node2D_property_global_rotation>`.
 
 
 \ **Note:** This property is edited in the inspector in degrees. If you want to use degrees in a script, use :ref:`rotation_degrees<class_Node2D_property_rotation_degrees>`.
 \ **Note:** This property is edited in the inspector in degrees. If you want to use degrees in a script, use :ref:`rotation_degrees<class_Node2D_property_rotation_degrees>`.
 
 
@@ -256,7 +256,7 @@ Rotation in radians, relative to the node's parent.
 - |void| **set_rotation_degrees**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_rotation_degrees**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_rotation_degrees**\ (\ )
 - :ref:`float<class_float>` **get_rotation_degrees**\ (\ )
 
 
-Helper property to access :ref:`rotation<class_Node2D_property_rotation>` in degrees instead of radians.
+Helper property to access :ref:`rotation<class_Node2D_property_rotation>` in degrees instead of radians. See also :ref:`global_rotation_degrees<class_Node2D_property_global_rotation_degrees>`.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -273,7 +273,7 @@ Helper property to access :ref:`rotation<class_Node2D_property_rotation>` in deg
 - |void| **set_scale**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - |void| **set_scale**\ (\ value\: :ref:`Vector2<class_Vector2>`\ )
 - :ref:`Vector2<class_Vector2>` **get_scale**\ (\ )
 - :ref:`Vector2<class_Vector2>` **get_scale**\ (\ )
 
 
-The node's scale. Unscaled value: ``(1, 1)``.
+The node's scale, relative to the node's parent. Unscaled value: ``(1, 1)``. See also :ref:`global_scale<class_Node2D_property_global_scale>`.
 
 
 \ **Note:** Negative X scales in 2D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, negative scales on the X axis will be changed to negative scales on the Y axis and a rotation of 180 degrees when decomposed.
 \ **Note:** Negative X scales in 2D are not decomposable from the transformation matrix. Due to the way scale is represented with transformation matrices in Godot, negative scales on the X axis will be changed to negative scales on the Y axis and a rotation of 180 degrees when decomposed.
 
 
@@ -292,9 +292,11 @@ The node's scale. Unscaled value: ``(1, 1)``.
 - |void| **set_skew**\ (\ value\: :ref:`float<class_float>`\ )
 - |void| **set_skew**\ (\ value\: :ref:`float<class_float>`\ )
 - :ref:`float<class_float>` **get_skew**\ (\ )
 - :ref:`float<class_float>` **get_skew**\ (\ )
 
 
-Slants the node.
+If set to a non-zero value, slants the node in one direction or another. This can be used for pseudo-3D effects. See also :ref:`global_skew<class_Node2D_property_global_skew>`.
 
 
-\ **Note:** Skew is X axis only.
+\ **Note:** Skew is performed on the X axis only, and *between* rotation and scaling.
+
+\ **Note:** This property is edited in the inspector in degrees. If you want to use degrees in a script, use ``skew = deg_to_rad(value_in_degrees)``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -311,7 +313,7 @@ Slants the node.
 - |void| **set_transform**\ (\ value\: :ref:`Transform2D<class_Transform2D>`\ )
 - |void| **set_transform**\ (\ value\: :ref:`Transform2D<class_Transform2D>`\ )
 - :ref:`Transform2D<class_Transform2D>` **get_transform**\ (\ )
 - :ref:`Transform2D<class_Transform2D>` **get_transform**\ (\ )
 
 
-Local :ref:`Transform2D<class_Transform2D>`.
+The node's :ref:`Transform2D<class_Transform2D>`, relative to the node's parent. See also :ref:`global_transform<class_Node2D_property_global_transform>`.
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 

+ 72 - 14
classes/class_openxrcompositionlayer.rst

@@ -35,15 +35,19 @@ Properties
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +---------------------------------------+-----------------------------------------------------------------------------------+-----------+
-   | :ref:`bool<class_bool>`               | :ref:`alpha_blend<class_OpenXRCompositionLayer_property_alpha_blend>`             | ``false`` |
-   +---------------------------------------+-----------------------------------------------------------------------------------+-----------+
-   | :ref:`bool<class_bool>`               | :ref:`enable_hole_punch<class_OpenXRCompositionLayer_property_enable_hole_punch>` | ``false`` |
-   +---------------------------------------+-----------------------------------------------------------------------------------+-----------+
-   | :ref:`SubViewport<class_SubViewport>` | :ref:`layer_viewport<class_OpenXRCompositionLayer_property_layer_viewport>`       |           |
-   +---------------------------------------+-----------------------------------------------------------------------------------+-----------+
-   | :ref:`int<class_int>`                 | :ref:`sort_order<class_OpenXRCompositionLayer_property_sort_order>`               | ``1``     |
-   +---------------------------------------+-----------------------------------------------------------------------------------+-----------+
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`alpha_blend<class_OpenXRCompositionLayer_property_alpha_blend>`                   | ``false``                |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`Vector2i<class_Vector2i>`       | :ref:`android_surface_size<class_OpenXRCompositionLayer_property_android_surface_size>` | ``Vector2i(1024, 1024)`` |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`enable_hole_punch<class_OpenXRCompositionLayer_property_enable_hole_punch>`       | ``false``                |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`SubViewport<class_SubViewport>` | :ref:`layer_viewport<class_OpenXRCompositionLayer_property_layer_viewport>`             |                          |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`int<class_int>`                 | :ref:`sort_order<class_OpenXRCompositionLayer_property_sort_order>`                     | ``1``                    |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
+   | :ref:`bool<class_bool>`               | :ref:`use_android_surface<class_OpenXRCompositionLayer_property_use_android_surface>`   | ``false``                |
+   +---------------------------------------+-----------------------------------------------------------------------------------------+--------------------------+
 
 
 .. rst-class:: classref-reftable-group
 .. rst-class:: classref-reftable-group
 
 
@@ -53,11 +57,13 @@ Methods
 .. table::
 .. table::
    :widths: auto
    :widths: auto
 
 
-   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`Vector2<class_Vector2>` | :ref:`intersects_ray<class_OpenXRCompositionLayer_method_intersects_ray>`\ (\ origin\: :ref:`Vector3<class_Vector3>`, direction\: :ref:`Vector3<class_Vector3>`\ ) |const| |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-   | :ref:`bool<class_bool>`       | :ref:`is_natively_supported<class_OpenXRCompositionLayer_method_is_natively_supported>`\ (\ ) |const|                                                                      |
-   +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`JavaObject<class_JavaObject>` | :ref:`get_android_surface<class_OpenXRCompositionLayer_method_get_android_surface>`\ (\ )                                                                                  |
+   +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Vector2<class_Vector2>`       | :ref:`intersects_ray<class_OpenXRCompositionLayer_method_intersects_ray>`\ (\ origin\: :ref:`Vector3<class_Vector3>`, direction\: :ref:`Vector3<class_Vector3>`\ ) |const| |
+   +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`bool<class_bool>`             | :ref:`is_natively_supported<class_OpenXRCompositionLayer_method_is_natively_supported>`\ (\ ) |const|                                                                      |
+   +-------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -87,6 +93,23 @@ Can be combined with :ref:`Viewport.transparent_bg<class_Viewport_property_trans
 
 
 ----
 ----
 
 
+.. _class_OpenXRCompositionLayer_property_android_surface_size:
+
+.. rst-class:: classref-property
+
+:ref:`Vector2i<class_Vector2i>` **android_surface_size** = ``Vector2i(1024, 1024)`` :ref:`🔗<class_OpenXRCompositionLayer_property_android_surface_size>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_android_surface_size**\ (\ value\: :ref:`Vector2i<class_Vector2i>`\ )
+- :ref:`Vector2i<class_Vector2i>` **get_android_surface_size**\ (\ )
+
+The size of the Android surface to create if :ref:`use_android_surface<class_OpenXRCompositionLayer_property_use_android_surface>` is enabled.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRCompositionLayer_property_enable_hole_punch:
 .. _class_OpenXRCompositionLayer_property_enable_hole_punch:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property
@@ -138,6 +161,27 @@ The sort order for this composition layer. Higher numbers will be shown in front
 
 
 \ **Note:** This will have no effect if a fallback mesh is being used.
 \ **Note:** This will have no effect if a fallback mesh is being used.
 
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_OpenXRCompositionLayer_property_use_android_surface:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **use_android_surface** = ``false`` :ref:`🔗<class_OpenXRCompositionLayer_property_use_android_surface>`
+
+.. rst-class:: classref-property-setget
+
+- |void| **set_use_android_surface**\ (\ value\: :ref:`bool<class_bool>`\ )
+- :ref:`bool<class_bool>` **get_use_android_surface**\ (\ )
+
+If enabled, an Android surface will be created (with the dimensions from :ref:`android_surface_size<class_OpenXRCompositionLayer_property_android_surface_size>`) which will provide the 2D content for the composition layer, rather than using :ref:`layer_viewport<class_OpenXRCompositionLayer_property_layer_viewport>`.
+
+See :ref:`get_android_surface<class_OpenXRCompositionLayer_method_get_android_surface>` for information about how to get the surface so that your application can draw to it.
+
+\ **Note:** This will only work in Android builds.
+
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
 ----
 ----
@@ -147,6 +191,20 @@ The sort order for this composition layer. Higher numbers will be shown in front
 Method Descriptions
 Method Descriptions
 -------------------
 -------------------
 
 
+.. _class_OpenXRCompositionLayer_method_get_android_surface:
+
+.. rst-class:: classref-method
+
+:ref:`JavaObject<class_JavaObject>` **get_android_surface**\ (\ ) :ref:`🔗<class_OpenXRCompositionLayer_method_get_android_surface>`
+
+Returns a :ref:`JavaObject<class_JavaObject>` representing an ``android.view.Surface`` if :ref:`use_android_surface<class_OpenXRCompositionLayer_property_use_android_surface>` is enabled and OpenXR has created the surface. Otherwise, this will return ``null``.
+
+\ **Note:** The surface can only be created during an active OpenXR session. So, if :ref:`use_android_surface<class_OpenXRCompositionLayer_property_use_android_surface>` is enabled outside of an OpenXR session, it won't be created until a new session fully starts.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_OpenXRCompositionLayer_method_intersects_ray:
 .. _class_OpenXRCompositionLayer_method_intersects_ray:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

+ 30 - 0
classes/class_projectsettings.rst

@@ -705,6 +705,8 @@ Properties
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`Dictionary<class_Dictionary>`               | :ref:`input/ui_undo<class_ProjectSettings_property_input/ui_undo>`                                                                                                                                         |                                                                                                  |
    | :ref:`Dictionary<class_Dictionary>`               | :ref:`input/ui_undo<class_ProjectSettings_property_input/ui_undo>`                                                                                                                                         |                                                                                                  |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`Dictionary<class_Dictionary>`               | :ref:`input/ui_unicode_start<class_ProjectSettings_property_input/ui_unicode_start>`                                                                                                                       |                                                                                                  |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`Dictionary<class_Dictionary>`               | :ref:`input/ui_up<class_ProjectSettings_property_input/ui_up>`                                                                                                                                             |                                                                                                  |
    | :ref:`Dictionary<class_Dictionary>`               | :ref:`input/ui_up<class_ProjectSettings_property_input/ui_up>`                                                                                                                                             |                                                                                                  |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`bool<class_bool>`                           | :ref:`input_devices/buffering/agile_event_flushing<class_ProjectSettings_property_input_devices/buffering/agile_event_flushing>`                                                                           | ``false``                                                                                        |
    | :ref:`bool<class_bool>`                           | :ref:`input_devices/buffering/agile_event_flushing<class_ProjectSettings_property_input_devices/buffering/agile_event_flushing>`                                                                           | ``false``                                                                                        |
@@ -1283,6 +1285,8 @@ Properties
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`physics/common/physics_ticks_per_second<class_ProjectSettings_property_physics/common/physics_ticks_per_second>`                                                                                     | ``60``                                                                                           |
    | :ref:`int<class_int>`                             | :ref:`physics/common/physics_ticks_per_second<class_ProjectSettings_property_physics/common/physics_ticks_per_second>`                                                                                     | ``60``                                                                                           |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
+   | :ref:`int<class_int>`                             | :ref:`rendering/2d/batching/item_buffer_size<class_ProjectSettings_property_rendering/2d/batching/item_buffer_size>`                                                                                       | ``16384``                                                                                        |
+   +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`rendering/2d/sdf/oversize<class_ProjectSettings_property_rendering/2d/sdf/oversize>`                                                                                                                 | ``1``                                                                                            |
    | :ref:`int<class_int>`                             | :ref:`rendering/2d/sdf/oversize<class_ProjectSettings_property_rendering/2d/sdf/oversize>`                                                                                                                 | ``1``                                                                                            |
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    +---------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                             | :ref:`rendering/2d/sdf/scale<class_ProjectSettings_property_rendering/2d/sdf/scale>`                                                                                                                       | ``1``                                                                                            |
    | :ref:`int<class_int>`                             | :ref:`rendering/2d/sdf/scale<class_ProjectSettings_property_rendering/2d/sdf/scale>`                                                                                                                       | ``1``                                                                                            |
@@ -6036,6 +6040,20 @@ Default :ref:`InputEventAction<class_InputEventAction>` to undo the most recent
 
 
 ----
 ----
 
 
+.. _class_ProjectSettings_property_input/ui_unicode_start:
+
+.. rst-class:: classref-property
+
+:ref:`Dictionary<class_Dictionary>` **input/ui_unicode_start** :ref:`🔗<class_ProjectSettings_property_input/ui_unicode_start>`
+
+Default :ref:`InputEventAction<class_InputEventAction>` to start Unicode character hexadecimal code input in a text field.
+
+\ **Note:** Default ``ui_*`` actions cannot be removed as they are necessary for the internal logic of several :ref:`Control<class_Control>`\ s. The events assigned to the action can however be modified.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ProjectSettings_property_input/ui_up:
 .. _class_ProjectSettings_property_input/ui_up:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property
@@ -9660,6 +9678,18 @@ The number of fixed iterations per second. This controls how often physics simul
 
 
 ----
 ----
 
 
+.. _class_ProjectSettings_property_rendering/2d/batching/item_buffer_size:
+
+.. rst-class:: classref-property
+
+:ref:`int<class_int>` **rendering/2d/batching/item_buffer_size** = ``16384`` :ref:`🔗<class_ProjectSettings_property_rendering/2d/batching/item_buffer_size>`
+
+Maximum number of canvas item commands that can be batched into a single draw call.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ProjectSettings_property_rendering/2d/sdf/oversize:
 .. _class_ProjectSettings_property_rendering/2d/sdf/oversize:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property

+ 2 - 0
classes/class_rdshadersource.rst

@@ -195,6 +195,8 @@ Returns source code for the specified shader ``stage``. Equivalent to getting on
 
 
 Sets ``source`` code for the specified shader ``stage``. Equivalent to setting one of :ref:`source_compute<class_RDShaderSource_property_source_compute>`, :ref:`source_fragment<class_RDShaderSource_property_source_fragment>`, :ref:`source_tesselation_control<class_RDShaderSource_property_source_tesselation_control>`, :ref:`source_tesselation_evaluation<class_RDShaderSource_property_source_tesselation_evaluation>` or :ref:`source_vertex<class_RDShaderSource_property_source_vertex>`.
 Sets ``source`` code for the specified shader ``stage``. Equivalent to setting one of :ref:`source_compute<class_RDShaderSource_property_source_compute>`, :ref:`source_fragment<class_RDShaderSource_property_source_fragment>`, :ref:`source_tesselation_control<class_RDShaderSource_property_source_tesselation_control>`, :ref:`source_tesselation_evaluation<class_RDShaderSource_property_source_tesselation_evaluation>` or :ref:`source_vertex<class_RDShaderSource_property_source_vertex>`.
 
 
+\ **Note:** If you set the compute shader source code using this method directly, remember to remove the Godot-specific hint ``#[compute]``.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 1 - 1
classes/class_resourceimporterdynamicfont.rst

@@ -239,7 +239,7 @@ Source font size used to generate MSDF textures. Higher values allow for more pr
 
 
 :ref:`bool<class_bool>` **multichannel_signed_distance_field** = ``false`` :ref:`🔗<class_ResourceImporterDynamicFont_property_multichannel_signed_distance_field>`
 :ref:`bool<class_bool>` **multichannel_signed_distance_field** = ``false`` :ref:`🔗<class_ResourceImporterDynamicFont_property_multichannel_signed_distance_field>`
 
 
-If set to ``true``, the default font will use multichannel signed distance field (MSDF) for crisp rendering at any size. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for :ref:`Control<class_Control>`\ s that are scaled down (or for :ref:`Label3D<class_Label3D>`\ s viewed from a long distance).
+If set to ``true``, the font will use multichannel signed distance field (MSDF) for crisp rendering at any size. Since this approach does not rely on rasterizing the font every time its size changes, this allows for resizing the font in real-time without any performance penalty. Text will also not look grainy for :ref:`Control<class_Control>`\ s that are scaled down (or for :ref:`Label3D<class_Label3D>`\ s viewed from a long distance).
 
 
 MSDF font rendering can be combined with :ref:`generate_mipmaps<class_ResourceImporterDynamicFont_property_generate_mipmaps>` to further improve font rendering quality when scaled down.
 MSDF font rendering can be combined with :ref:`generate_mipmaps<class_ResourceImporterDynamicFont_property_generate_mipmaps>` to further improve font rendering quality when scaled down.
 
 

+ 14 - 0
classes/class_resourceimporterscene.rst

@@ -77,6 +77,8 @@ Properties
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    | :ref:`String<class_String>`         | :ref:`nodes/root_type<class_ResourceImporterScene_property_nodes/root_type>`                                     | ``""``    |
    | :ref:`String<class_String>`         | :ref:`nodes/root_type<class_ResourceImporterScene_property_nodes/root_type>`                                     | ``""``    |
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
+   | :ref:`bool<class_bool>`             | :ref:`nodes/use_node_type_suffixes<class_ResourceImporterScene_property_nodes/use_node_type_suffixes>`           | ``true``  |
+   +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    | :ref:`bool<class_bool>`             | :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>`                         | ``true``  |
    | :ref:`bool<class_bool>`             | :ref:`skins/use_named_skins<class_ResourceImporterScene_property_skins/use_named_skins>`                         | ``true``  |
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
    +-------------------------------------+------------------------------------------------------------------------------------------------------------------+-----------+
 
 
@@ -309,6 +311,18 @@ Override for the root node type. If empty, the root node will use what the scene
 
 
 ----
 ----
 
 
+.. _class_ResourceImporterScene_property_nodes/use_node_type_suffixes:
+
+.. rst-class:: classref-property
+
+:ref:`bool<class_bool>` **nodes/use_node_type_suffixes** = ``true`` :ref:`🔗<class_ResourceImporterScene_property_nodes/use_node_type_suffixes>`
+
+If ``true``, use suffixes in the node names to determine the node type, such as ``-col`` for collision shapes. Disabling this makes editor-imported files more similar to the original files, and more similar to importing files at runtime. See :doc:`Node type customization using name suffixes <../tutorials/assets_pipeline/importing_3d_scenes/node_type_customization>` for more information.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_ResourceImporterScene_property_skins/use_named_skins:
 .. _class_ResourceImporterScene_property_skins/use_named_skins:
 
 
 .. rst-class:: classref-property
 .. rst-class:: classref-property

+ 16 - 0
classes/class_scripteditor.rst

@@ -52,6 +52,8 @@ Methods
    +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                                       | :ref:`unregister_syntax_highlighter<class_ScriptEditor_method_unregister_syntax_highlighter>`\ (\ syntax_highlighter\: :ref:`EditorSyntaxHighlighter<class_EditorSyntaxHighlighter>`\ ) |
    | |void|                                                                       | :ref:`unregister_syntax_highlighter<class_ScriptEditor_method_unregister_syntax_highlighter>`\ (\ syntax_highlighter\: :ref:`EditorSyntaxHighlighter<class_EditorSyntaxHighlighter>`\ ) |
    +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                                       | :ref:`update_docs_from_script<class_ScriptEditor_method_update_docs_from_script>`\ (\ script\: :ref:`Script<class_Script>`\ )                                                           |
+   +------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 
@@ -234,6 +236,20 @@ Unregisters the :ref:`EditorSyntaxHighlighter<class_EditorSyntaxHighlighter>` fr
 
 
 \ **Note:** The :ref:`EditorSyntaxHighlighter<class_EditorSyntaxHighlighter>` will still be applied to scripts that are already opened.
 \ **Note:** The :ref:`EditorSyntaxHighlighter<class_EditorSyntaxHighlighter>` will still be applied to scripts that are already opened.
 
 
+.. rst-class:: classref-item-separator
+
+----
+
+.. _class_ScriptEditor_method_update_docs_from_script:
+
+.. rst-class:: classref-method
+
+|void| **update_docs_from_script**\ (\ script\: :ref:`Script<class_Script>`\ ) :ref:`🔗<class_ScriptEditor_method_update_docs_from_script>`
+
+Updates the documentation for the given ``script`` if the script's documentation is currently open.
+
+\ **Note:** This should be called whenever the script is changed to keep the open documentation state up to date.
+
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
 .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`

+ 1 - 1
classes/class_theme.rst

@@ -315,7 +315,7 @@ Use :ref:`has_default_font<class_Theme_method_has_default_font>` to check if thi
 
 
 The default font size of this theme resource. Used as the default value when trying to fetch a font size value that doesn't exist in this theme or is in invalid state. If the default font size is also missing or invalid, the engine fallback value is used (see :ref:`ThemeDB.fallback_font_size<class_ThemeDB_property_fallback_font_size>`).
 The default font size of this theme resource. Used as the default value when trying to fetch a font size value that doesn't exist in this theme or is in invalid state. If the default font size is also missing or invalid, the engine fallback value is used (see :ref:`ThemeDB.fallback_font_size<class_ThemeDB_property_fallback_font_size>`).
 
 
-Values below ``0`` are invalid and can be used to unset the property. Use :ref:`has_default_font_size<class_Theme_method_has_default_font_size>` to check if this value is valid.
+Values below ``1`` are invalid and can be used to unset the property. Use :ref:`has_default_font_size<class_Theme_method_has_default_font_size>` to check if this value is valid.
 
 
 .. rst-class:: classref-section-separator
 .. rst-class:: classref-section-separator
 
 

+ 33 - 5
classes/class_treeitem.rst

@@ -110,6 +110,8 @@ Methods
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Color<class_Color>`                                         | :ref:`get_icon_modulate<class_TreeItem_method_get_icon_modulate>`\ (\ column\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                     |
    | :ref:`Color<class_Color>`                                         | :ref:`get_icon_modulate<class_TreeItem_method_get_icon_modulate>`\ (\ column\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                     |
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | :ref:`Texture2D<class_Texture2D>`                                 | :ref:`get_icon_overlay<class_TreeItem_method_get_icon_overlay>`\ (\ column\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                       |
+   +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`Rect2<class_Rect2>`                                         | :ref:`get_icon_region<class_TreeItem_method_get_icon_region>`\ (\ column\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                         |
    | :ref:`Rect2<class_Rect2>`                                         | :ref:`get_icon_region<class_TreeItem_method_get_icon_region>`\ (\ column\: :ref:`int<class_int>`\ ) |const|                                                                                                                                                         |
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | :ref:`int<class_int>`                                             | :ref:`get_index<class_TreeItem_method_get_index>`\ (\ )                                                                                                                                                                                                             |
    | :ref:`int<class_int>`                                             | :ref:`get_index<class_TreeItem_method_get_index>`\ (\ )                                                                                                                                                                                                             |
@@ -226,6 +228,8 @@ Methods
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                            | :ref:`set_icon_modulate<class_TreeItem_method_set_icon_modulate>`\ (\ column\: :ref:`int<class_int>`, modulate\: :ref:`Color<class_Color>`\ )                                                                                                                       |
    | |void|                                                            | :ref:`set_icon_modulate<class_TreeItem_method_set_icon_modulate>`\ (\ column\: :ref:`int<class_int>`, modulate\: :ref:`Color<class_Color>`\ )                                                                                                                       |
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
+   | |void|                                                            | :ref:`set_icon_overlay<class_TreeItem_method_set_icon_overlay>`\ (\ column\: :ref:`int<class_int>`, texture\: :ref:`Texture2D<class_Texture2D>`\ )                                                                                                                  |
+   +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                            | :ref:`set_icon_region<class_TreeItem_method_set_icon_region>`\ (\ column\: :ref:`int<class_int>`, region\: :ref:`Rect2<class_Rect2>`\ )                                                                                                                             |
    | |void|                                                            | :ref:`set_icon_region<class_TreeItem_method_set_icon_region>`\ (\ column\: :ref:`int<class_int>`, region\: :ref:`Rect2<class_Rect2>`\ )                                                                                                                             |
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    +-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | |void|                                                            | :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>`\ (\ column\: :ref:`int<class_int>`, indeterminate\: :ref:`bool<class_bool>`\ )                                                                                                                    |
    | |void|                                                            | :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>`\ (\ column\: :ref:`int<class_int>`, indeterminate\: :ref:`bool<class_bool>`\ )                                                                                                                    |
@@ -280,7 +284,7 @@ enum **TreeCellMode**: :ref:`🔗<enum_TreeItem_TreeCellMode>`
 
 
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_STRING** = ``0``
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_STRING** = ``0``
 
 
-Cell shows a string label. When editable, the text can be edited using a :ref:`LineEdit<class_LineEdit>`, or a :ref:`TextEdit<class_TextEdit>` popup if :ref:`set_edit_multiline<class_TreeItem_method_set_edit_multiline>` is used.
+Cell shows a string label, optionally with an icon. When editable, the text can be edited using a :ref:`LineEdit<class_LineEdit>`, or a :ref:`TextEdit<class_TextEdit>` popup if :ref:`set_edit_multiline<class_TreeItem_method_set_edit_multiline>` is used.
 
 
 .. _class_TreeItem_constant_CELL_MODE_CHECK:
 .. _class_TreeItem_constant_CELL_MODE_CHECK:
 
 
@@ -288,7 +292,7 @@ Cell shows a string label. When editable, the text can be edited using a :ref:`L
 
 
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_CHECK** = ``1``
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_CHECK** = ``1``
 
 
-Cell shows a checkbox, optionally with text. The checkbox can be pressed, released, or indeterminate (via :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>`). The checkbox can't be clicked unless the cell is editable.
+Cell shows a checkbox, optionally with text and an icon. The checkbox can be pressed, released, or indeterminate (via :ref:`set_indeterminate<class_TreeItem_method_set_indeterminate>`). The checkbox can't be clicked unless the cell is editable.
 
 
 .. _class_TreeItem_constant_CELL_MODE_RANGE:
 .. _class_TreeItem_constant_CELL_MODE_RANGE:
 
 
@@ -306,7 +310,7 @@ This cell can also be used in a text dropdown mode when you assign a text with :
 
 
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_ICON** = ``3``
 :ref:`TreeCellMode<enum_TreeItem_TreeCellMode>` **CELL_MODE_ICON** = ``3``
 
 
-Cell shows an icon. It can't be edited nor display text.
+Cell shows an icon. It can't be edited nor display text. The icon is always centered within the cell.
 
 
 .. _class_TreeItem_constant_CELL_MODE_CUSTOM:
 .. _class_TreeItem_constant_CELL_MODE_CUSTOM:
 
 
@@ -408,7 +412,7 @@ Method Descriptions
 
 
 |void| **add_button**\ (\ column\: :ref:`int<class_int>`, button\: :ref:`Texture2D<class_Texture2D>`, id\: :ref:`int<class_int>` = -1, disabled\: :ref:`bool<class_bool>` = false, tooltip_text\: :ref:`String<class_String>` = ""\ ) :ref:`🔗<class_TreeItem_method_add_button>`
 |void| **add_button**\ (\ column\: :ref:`int<class_int>`, button\: :ref:`Texture2D<class_Texture2D>`, id\: :ref:`int<class_int>` = -1, disabled\: :ref:`bool<class_bool>` = false, tooltip_text\: :ref:`String<class_String>` = ""\ ) :ref:`🔗<class_TreeItem_method_add_button>`
 
 
-Adds a button with :ref:`Texture2D<class_Texture2D>` ``button`` at column ``column``. The ``id`` is used to identify the button in the according :ref:`Tree.button_clicked<class_Tree_signal_button_clicked>` signal and can be different from the buttons index. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately before this method. Optionally, the button can be ``disabled`` and have a ``tooltip_text``.
+Adds a button with :ref:`Texture2D<class_Texture2D>` ``button`` to the end of the cell at column ``column``. The ``id`` is used to identify the button in the according :ref:`Tree.button_clicked<class_Tree_signal_button_clicked>` signal and can be different from the buttons index. If not specified, the next available index is used, which may be retrieved by calling :ref:`get_button_count<class_TreeItem_method_get_button_count>` immediately before this method. Optionally, the button can be ``disabled`` and have a ``tooltip_text``.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -754,6 +758,18 @@ Returns the :ref:`Color<class_Color>` modulating the column's icon.
 
 
 ----
 ----
 
 
+.. _class_TreeItem_method_get_icon_overlay:
+
+.. rst-class:: classref-method
+
+:ref:`Texture2D<class_Texture2D>` **get_icon_overlay**\ (\ column\: :ref:`int<class_int>`\ ) |const| :ref:`🔗<class_TreeItem_method_get_icon_overlay>`
+
+Returns the given column's icon overlay :ref:`Texture2D<class_Texture2D>`.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TreeItem_method_get_icon_region:
 .. _class_TreeItem_method_get_icon_region:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method
@@ -1444,7 +1460,7 @@ If ``enable`` is ``true``, the given ``column`` is expanded to the right.
 
 
 |void| **set_icon**\ (\ column\: :ref:`int<class_int>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_TreeItem_method_set_icon>`
 |void| **set_icon**\ (\ column\: :ref:`int<class_int>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_TreeItem_method_set_icon>`
 
 
-Sets the given cell's icon :ref:`Texture2D<class_Texture2D>`. The cell has to be in :ref:`CELL_MODE_ICON<class_TreeItem_constant_CELL_MODE_ICON>` mode.
+Sets the given cell's icon :ref:`Texture2D<class_Texture2D>`. If the cell is in :ref:`CELL_MODE_ICON<class_TreeItem_constant_CELL_MODE_ICON>` mode, the icon is displayed in the center of the cell. Otherwise, the icon is displayed before the cell's text. :ref:`CELL_MODE_RANGE<class_TreeItem_constant_CELL_MODE_RANGE>` does not display an icon.
 
 
 .. rst-class:: classref-item-separator
 .. rst-class:: classref-item-separator
 
 
@@ -1474,6 +1490,18 @@ Modulates the given column's icon with ``modulate``.
 
 
 ----
 ----
 
 
+.. _class_TreeItem_method_set_icon_overlay:
+
+.. rst-class:: classref-method
+
+|void| **set_icon_overlay**\ (\ column\: :ref:`int<class_int>`, texture\: :ref:`Texture2D<class_Texture2D>`\ ) :ref:`🔗<class_TreeItem_method_set_icon_overlay>`
+
+Sets the given cell's icon overlay :ref:`Texture2D<class_Texture2D>`. The cell has to be in :ref:`CELL_MODE_ICON<class_TreeItem_constant_CELL_MODE_ICON>` mode, and icon has to be set. Overlay is drawn on top of icon, in the bottom left corner.
+
+.. rst-class:: classref-item-separator
+
+----
+
 .. _class_TreeItem_method_set_icon_region:
 .. _class_TreeItem_method_set_icon_region:
 
 
 .. rst-class:: classref-method
 .. rst-class:: classref-method

Some files were not shown because too many files changed in this diff