summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/classes/Area.xml2
-rw-r--r--doc/classes/Area2D.xml2
-rw-r--r--doc/classes/Array.xml8
-rw-r--r--doc/classes/BitmapFont.xml3
-rw-r--r--doc/classes/HTTPRequest.xml21
-rw-r--r--doc/classes/ImmediateGeometry.xml2
-rw-r--r--doc/classes/KinematicCollision.xml2
-rw-r--r--doc/classes/KinematicCollision2D.xml2
-rw-r--r--doc/classes/Node2D.xml4
-rw-r--r--doc/classes/Object.xml6
-rw-r--r--drivers/gles3/rasterizer_storage_gles3.cpp1
-rw-r--r--drivers/gles3/shaders/scene.glsl2
-rw-r--r--editor/connections_dialog.cpp1
-rw-r--r--editor/create_dialog.cpp2
-rw-r--r--editor/dependency_editor.cpp1
-rw-r--r--editor/editor_asset_installer.cpp1
-rw-r--r--editor/editor_audio_buses.cpp1
-rw-r--r--editor/editor_autoload_settings.cpp2
-rw-r--r--editor/editor_help.cpp1
-rw-r--r--editor/editor_help_search.cpp1
-rw-r--r--editor/editor_inspector.cpp1
-rw-r--r--editor/editor_log.cpp1
-rw-r--r--editor/editor_node.cpp140
-rw-r--r--editor/editor_node.h89
-rw-r--r--editor/editor_plugin.cpp3
-rw-r--r--editor/editor_plugin_settings.cpp1
-rw-r--r--editor/editor_properties.cpp2
-rw-r--r--editor/editor_settings.cpp1
-rw-r--r--editor/export_template_manager.cpp2
-rw-r--r--editor/filesystem_dock.cpp14
-rw-r--r--editor/filesystem_dock.h2
-rw-r--r--editor/groups_editor.cpp1
-rw-r--r--editor/import/editor_scene_importer_gltf.cpp15
-rw-r--r--editor/import_dock.cpp1
-rw-r--r--editor/node_dock.cpp1
-rw-r--r--editor/plugin_config_dialog.cpp2
-rw-r--r--editor/plugins/abstract_polygon_2d_editor.cpp1
-rw-r--r--editor/plugins/animation_blend_space_1d_editor.cpp1
-rw-r--r--editor/plugins/animation_blend_space_2d_editor.cpp1
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.cpp2
-rw-r--r--editor/plugins/animation_blend_tree_editor_plugin.h2
-rw-r--r--editor/plugins/animation_player_editor_plugin.cpp1
-rw-r--r--editor/plugins/animation_state_machine_editor.cpp1
-rw-r--r--editor/plugins/asset_library_editor_plugin.cpp2
-rw-r--r--editor/plugins/audio_stream_editor_plugin.cpp1
-rw-r--r--editor/plugins/canvas_item_editor_plugin.cpp2
-rw-r--r--editor/plugins/curve_editor_plugin.cpp1
-rw-r--r--editor/plugins/curve_editor_plugin.h1
-rw-r--r--editor/plugins/editor_preview_plugins.cpp1
-rw-r--r--editor/plugins/gradient_editor_plugin.cpp1
-rw-r--r--editor/plugins/item_list_editor_plugin.cpp1
-rw-r--r--editor/plugins/material_editor_plugin.cpp2
-rw-r--r--editor/plugins/material_editor_plugin.h2
-rw-r--r--editor/plugins/mesh_editor_plugin.cpp2
-rw-r--r--editor/plugins/mesh_editor_plugin.h1
-rw-r--r--editor/plugins/mesh_instance_editor_plugin.cpp1
-rw-r--r--editor/plugins/path_2d_editor_plugin.cpp1
-rw-r--r--editor/plugins/polygon_2d_editor_plugin.cpp1
-rw-r--r--editor/plugins/script_editor_plugin.cpp3
-rw-r--r--editor/plugins/script_text_editor.cpp1
-rw-r--r--editor/plugins/spatial_editor_plugin.cpp2
-rw-r--r--editor/plugins/spatial_editor_plugin.h1
-rw-r--r--editor/plugins/sprite_editor_plugin.cpp1
-rw-r--r--editor/plugins/sprite_frames_editor_plugin.cpp2
-rw-r--r--editor/plugins/style_box_editor_plugin.cpp2
-rw-r--r--editor/plugins/texture_region_editor_plugin.cpp1
-rw-r--r--editor/plugins/theme_editor_plugin.cpp4
-rw-r--r--editor/plugins/tile_set_editor_plugin.cpp1
-rw-r--r--editor/plugins/version_control_editor_plugin.cpp1
-rw-r--r--editor/plugins/visual_shader_editor_plugin.cpp2
-rw-r--r--editor/project_export.cpp1
-rw-r--r--editor/project_settings_editor.cpp2
-rw-r--r--editor/property_editor.cpp2
-rw-r--r--editor/rename_dialog.cpp3
-rw-r--r--editor/scene_tree_dock.cpp2
-rw-r--r--editor/scene_tree_editor.cpp3
-rw-r--r--editor/script_editor_debugger.cpp2
-rw-r--r--editor/settings_config_dialog.cpp2
-rw-r--r--main/main.cpp5
-rw-r--r--modules/gdnative/gdnative_library_editor_plugin.cpp2
-rw-r--r--modules/gdnative/register_types.cpp1
-rw-r--r--modules/gdscript/language_server/gdscript_language_server.cpp1
-rw-r--r--modules/mono/csharp_script.cpp1
-rw-r--r--modules/mono/editor/editor_internal_calls.cpp1
-rw-r--r--modules/visual_script/visual_script_editor.cpp1
-rw-r--r--platform/android/export/export.cpp1
-rw-r--r--scene/gui/control.cpp2
-rw-r--r--scene/gui/dialogs.cpp1
-rw-r--r--scene/gui/text_edit.cpp1
89 files changed, 295 insertions, 130 deletions
diff --git a/doc/classes/Area.xml b/doc/classes/Area.xml
index 6bd1382488..4b0858935d 100644
--- a/doc/classes/Area.xml
+++ b/doc/classes/Area.xml
@@ -166,7 +166,7 @@
<argument index="3" name="self_shape" type="int">
</argument>
<description>
- Emitted when another area enters, reporting which areas overlapped.
+ Emitted when another area enters, reporting which areas overlapped. [code]shape_owner_get_owner(shape_find_owner(shape))[/code] returns the parent object of the owner of the [code]shape[/code].
</description>
</signal>
<signal name="area_shape_exited">
diff --git a/doc/classes/Area2D.xml b/doc/classes/Area2D.xml
index 9a5870c73d..be3acee9ef 100644
--- a/doc/classes/Area2D.xml
+++ b/doc/classes/Area2D.xml
@@ -155,7 +155,7 @@
<argument index="3" name="self_shape" type="int">
</argument>
<description>
- Emitted when another area enters, reporting which shapes overlapped.
+ Emitted when another area enters, reporting which shapes overlapped. [code]shape_owner_get_owner(shape_find_owner(shape))[/code] returns the parent object of the owner of the [code]shape[/code].
</description>
</signal>
<signal name="area_shape_exited">
diff --git a/doc/classes/Array.xml b/doc/classes/Array.xml
index e09c1f4b08..2d330fc935 100644
--- a/doc/classes/Array.xml
+++ b/doc/classes/Array.xml
@@ -93,7 +93,7 @@
<return type="Variant">
</return>
<description>
- Returns the last element of the array if the array is not empty.
+ Returns the last element of the array, or [code]null[/code] if the array is empty.
</description>
</method>
<method name="bsearch">
@@ -186,7 +186,7 @@
<return type="Variant">
</return>
<description>
- Returns the first element of the array if the array is not empty.
+ Returns the first element of the array, or [code]null[/code] if the array is empty.
</description>
</method>
<method name="has">
@@ -243,14 +243,14 @@
<return type="Variant">
</return>
<description>
- Removes the last element of the array.
+ Removes and returns the last element of the array. Returns [code]null[/code] if the array is empty.
</description>
</method>
<method name="pop_front">
<return type="Variant">
</return>
<description>
- Removes the first element of the array.
+ Removes and returns the first element of the array. Returns [code]null[/code] if the array is empty.
</description>
</method>
<method name="push_back">
diff --git a/doc/classes/BitmapFont.xml b/doc/classes/BitmapFont.xml
index 16a28978d5..5b7c3def63 100644
--- a/doc/classes/BitmapFont.xml
+++ b/doc/classes/BitmapFont.xml
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="BitmapFont" inherits="Font" category="Core" version="3.2">
<brief_description>
- Renders text using [code]*.fnt[/code] fonts.
+ Renders text using fonts under the [url=https://www.angelcode.com/products/bmfont/]BMFont[/url] format.
+ Handles files with the [code].fnt[/code] extension
</brief_description>
<description>
Renders text using [code]*.fnt[/code] fonts containing texture atlases. Supports distance fields. For using vector font files like TTF directly, see [DynamicFont].
diff --git a/doc/classes/HTTPRequest.xml b/doc/classes/HTTPRequest.xml
index 2fed423a32..748ed504c3 100644
--- a/doc/classes/HTTPRequest.xml
+++ b/doc/classes/HTTPRequest.xml
@@ -6,6 +6,27 @@
<description>
A node with the ability to send HTTP requests. Uses [HTTPClient] internally.
Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.
+ [b]Example of contacting a REST API and printing one of its returned fields:[/b]
+ [codeblock]
+ func _ready():
+ # Create an HTTP request node and connect its completion signal.
+ var http_request = HTTPRequest.new()
+ add_child(http_request)
+ http_request.connect("request_completed", self, "_http_request_completed")
+
+ # Perform the HTTP request. The URL below returns some JSON as of writing.
+ var error = http_request.request("https://httpbin.org/get")
+ if error != OK:
+ push_error("An error occurred in the HTTP request.")
+
+
+ # Called when the HTTP request is completed.
+ func _http_request_completed(result, response_code, headers, body):
+ var response = parse_json(body.get_string_from_utf8())
+
+ # Will print the user agent string used by the HTTPRequest node (as recognized by httpbin.org).
+ print(response.headers["User-Agent"])
+ [/codeblock]
[b]Example of loading and displaying an image using HTTPRequest:[/b]
[codeblock]
func _ready():
diff --git a/doc/classes/ImmediateGeometry.xml b/doc/classes/ImmediateGeometry.xml
index e0807760f7..416128c9b1 100644
--- a/doc/classes/ImmediateGeometry.xml
+++ b/doc/classes/ImmediateGeometry.xml
@@ -30,7 +30,7 @@
<argument index="0" name="position" type="Vector3">
</argument>
<description>
- Adds a vertex with the currently set color/uv/etc.
+ Adds a vertex in local coordinate space with the currently set color/uv/etc.
</description>
</method>
<method name="begin">
diff --git a/doc/classes/KinematicCollision.xml b/doc/classes/KinematicCollision.xml
index 44447c8fc8..46e4176e9f 100644
--- a/doc/classes/KinematicCollision.xml
+++ b/doc/classes/KinematicCollision.xml
@@ -16,7 +16,7 @@
The colliding body.
</member>
<member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
- The colliding body's unique [RID].
+ The colliding body's unique instance ID. See [method Object.get_instance_id].
</member>
<member name="collider_metadata" type="Variant" setter="" getter="get_collider_metadata">
The colliding body's metadata. See [Object].
diff --git a/doc/classes/KinematicCollision2D.xml b/doc/classes/KinematicCollision2D.xml
index 51c2277fb2..4c9337f82d 100644
--- a/doc/classes/KinematicCollision2D.xml
+++ b/doc/classes/KinematicCollision2D.xml
@@ -16,7 +16,7 @@
The colliding body.
</member>
<member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
- The colliding body's unique [RID].
+ The colliding body's unique instance ID. See [method Object.get_instance_id].
</member>
<member name="collider_metadata" type="Variant" setter="" getter="get_collider_metadata">
The colliding body's metadata. See [Object].
diff --git a/doc/classes/Node2D.xml b/doc/classes/Node2D.xml
index 29c4680685..67e9597781 100644
--- a/doc/classes/Node2D.xml
+++ b/doc/classes/Node2D.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Node2D" inherits="CanvasItem" category="Core" version="3.2">
<brief_description>
- A 2D game object, parent of all 2D-related nodes. Has a position, rotation, scale and Z index.
+ A 2D game object, inherited by all 2D-related nodes. Has a position, rotation, scale, and Z index.
</brief_description>
<description>
- A 2D game object, with a position, rotation and scale. All 2D physics nodes and sprites inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control on the node's render order.
+ A 2D game object, with a transform (position, rotation, and scale). All 2D nodes, including physics objects and sprites, inherit from Node2D. Use Node2D as a parent node to move, scale and rotate children in a 2D project. Also gives control of the node's render order.
</description>
<tutorials>
<link>https://docs.godotengine.org/en/latest/tutorials/2d/custom_drawing_in_2d.html</link>
diff --git a/doc/classes/Object.xml b/doc/classes/Object.xml
index 5a09fe39c0..1e5b8669fd 100644
--- a/doc/classes/Object.xml
+++ b/doc/classes/Object.xml
@@ -9,6 +9,12 @@
Objects do not manage memory. If a class inherits from Object, you will have to delete instances of it manually. To do so, call the [method free] method from your script or delete the instance from C++.
Some classes that extend Object add memory management. This is the case of [Reference], which counts references and deletes itself automatically when no longer referenced. [Node], another fundamental type, deletes all its children when freed from memory.
Objects export properties, which are mainly useful for storage and editing, but not really so much in programming. Properties are exported in [method _get_property_list] and handled in [method _get] and [method _set]. However, scripting languages and C++ have simpler means to export them.
+ Property membership can be tested directly in GDScript using [code]in[/code]:
+ [codeblock]
+ var n = Node2D.new()
+ print("position" in n) # Prints "True".
+ print("other_property" in n) # Prints "False".
+ [/codeblock]
Objects also receive notifications. Notifications are a simple way to notify the object about different events, so they can all be handled together. See [method _notification].
</description>
<tutorials>
diff --git a/drivers/gles3/rasterizer_storage_gles3.cpp b/drivers/gles3/rasterizer_storage_gles3.cpp
index 07d7416905..a0628a24dd 100644
--- a/drivers/gles3/rasterizer_storage_gles3.cpp
+++ b/drivers/gles3/rasterizer_storage_gles3.cpp
@@ -4454,6 +4454,7 @@ void RasterizerStorageGLES3::multimesh_allocate(RID p_multimesh, int p_instances
if (multimesh->buffer) {
glDeleteBuffers(1, &multimesh->buffer);
multimesh->data.resize(0);
+ multimesh->buffer = 0;
}
multimesh->size = p_instances;
diff --git a/drivers/gles3/shaders/scene.glsl b/drivers/gles3/shaders/scene.glsl
index 63b2938551..a330dbef77 100644
--- a/drivers/gles3/shaders/scene.glsl
+++ b/drivers/gles3/shaders/scene.glsl
@@ -1260,7 +1260,7 @@ void light_process_omni(int idx, vec3 vertex, vec3 eye_vec, vec3 normal, vec3 bi
float normalized_distance = light_length * omni_lights[idx].light_pos_inv_radius.w;
float omni_attenuation;
if (normalized_distance < 1.0) {
- omni_attenuation = pow(normalized_distance, omni_lights[idx].light_direction_attenuation.w);
+ omni_attenuation = pow(1.0 - normalized_distance, omni_lights[idx].light_direction_attenuation.w);
} else {
omni_attenuation = 0.0;
}
diff --git a/editor/connections_dialog.cpp b/editor/connections_dialog.cpp
index 44034fd127..235543d06d 100644
--- a/editor/connections_dialog.cpp
+++ b/editor/connections_dialog.cpp
@@ -32,6 +32,7 @@
#include "core/print_string.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "plugins/script_editor_plugin.h"
#include "scene/gui/label.h"
diff --git a/editor/create_dialog.cpp b/editor/create_dialog.cpp
index fb7cf494cd..5f0168d0a6 100644
--- a/editor/create_dialog.cpp
+++ b/editor/create_dialog.cpp
@@ -33,8 +33,10 @@
#include "core/class_db.h"
#include "core/os/keyboard.h"
#include "core/print_string.h"
+#include "editor_feature_profile.h"
#include "editor_help.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "scene/gui/box_container.h"
diff --git a/editor/dependency_editor.cpp b/editor/dependency_editor.cpp
index c6046f7e19..2743aa8b0c 100644
--- a/editor/dependency_editor.cpp
+++ b/editor/dependency_editor.cpp
@@ -33,6 +33,7 @@
#include "core/io/resource_loader.h"
#include "core/os/file_access.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "scene/gui/margin_container.h"
void DependencyEditor::_searched(const String &p_path) {
diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp
index 98e670f952..a5accf2ec7 100644
--- a/editor/editor_asset_installer.cpp
+++ b/editor/editor_asset_installer.cpp
@@ -34,6 +34,7 @@
#include "core/os/dir_access.h"
#include "core/os/file_access.h"
#include "editor_node.h"
+#include "progress_dialog.h"
void EditorAssetInstaller::_update_subitems(TreeItem *p_item, bool p_check, bool p_first) {
diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp
index acfdea28e2..f4f1dc58ba 100644
--- a/editor/editor_audio_buses.cpp
+++ b/editor/editor_audio_buses.cpp
@@ -34,6 +34,7 @@
#include "core/os/input.h"
#include "core/os/keyboard.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "filesystem_dock.h"
#include "scene/resources/font.h"
#include "servers/audio_server.h"
diff --git a/editor/editor_autoload_settings.cpp b/editor/editor_autoload_settings.cpp
index f44e1b7b14..d26c77cf8c 100644
--- a/editor/editor_autoload_settings.cpp
+++ b/editor/editor_autoload_settings.cpp
@@ -33,6 +33,8 @@
#include "core/global_constants.h"
#include "core/project_settings.h"
#include "editor_node.h"
+#include "editor_scale.h"
+#include "project_settings_editor.h"
#include "scene/main/viewport.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/editor_help.cpp b/editor/editor_help.cpp
index bbbb50297f..2730e5cf89 100644
--- a/editor/editor_help.cpp
+++ b/editor/editor_help.cpp
@@ -35,6 +35,7 @@
#include "doc_data_compressed.gen.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#define CONTRIBUTE_URL "https://docs.godotengine.org/en/latest/community/contributing/updating_the_class_reference.html"
diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp
index 517a1c34d1..2249fb48ab 100644
--- a/editor/editor_help_search.cpp
+++ b/editor/editor_help_search.cpp
@@ -31,6 +31,7 @@
#include "editor_help_search.h"
#include "core/os/keyboard.h"
+#include "editor_feature_profile.h"
#include "editor_node.h"
void EditorHelpSearch::_update_icons() {
diff --git a/editor/editor_inspector.cpp b/editor/editor_inspector.cpp
index 96b6a32914..29a6f9365e 100644
--- a/editor/editor_inspector.cpp
+++ b/editor/editor_inspector.cpp
@@ -31,6 +31,7 @@
#include "editor_inspector.h"
#include "array_property_edit.h"
#include "dictionary_property_edit.h"
+#include "editor_feature_profile.h"
#include "editor_node.h"
#include "editor_scale.h"
#include "multi_node_edit.h"
diff --git a/editor/editor_log.cpp b/editor/editor_log.cpp
index 5474f86c74..5b4c61ef8e 100644
--- a/editor/editor_log.cpp
+++ b/editor/editor_log.cpp
@@ -33,6 +33,7 @@
#include "core/os/keyboard.h"
#include "core/version.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "scene/gui/center_container.h"
#include "scene/resources/dynamic_font.h"
diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp
index 1f7dfed06e..c8d87868ae 100644
--- a/editor/editor_node.cpp
+++ b/editor/editor_node.cpp
@@ -49,16 +49,44 @@
#include "core/version.h"
#include "main/input_default.h"
#include "main/main.h"
+#include "scene/gui/center_container.h"
+#include "scene/gui/control.h"
+#include "scene/gui/dialogs.h"
+#include "scene/gui/file_dialog.h"
+#include "scene/gui/menu_button.h"
+#include "scene/gui/panel.h"
+#include "scene/gui/panel_container.h"
+#include "scene/gui/split_container.h"
+#include "scene/gui/tab_container.h"
+#include "scene/gui/tabs.h"
+#include "scene/gui/texture_progress.h"
+#include "scene/gui/tool_button.h"
#include "scene/resources/packed_scene.h"
#include "servers/physics_2d_server.h"
+#include "editor/audio_stream_preview.h"
+#include "editor/dependency_editor.h"
+#include "editor/editor_about.h"
#include "editor/editor_audio_buses.h"
+#include "editor/editor_export.h"
+#include "editor/editor_feature_profile.h"
#include "editor/editor_file_system.h"
#include "editor/editor_help.h"
+#include "editor/editor_inspector.h"
+#include "editor/editor_layouts_dialog.h"
+#include "editor/editor_log.h"
+#include "editor/editor_plugin.h"
#include "editor/editor_properties.h"
+#include "editor/editor_resource_preview.h"
+#include "editor/editor_run_native.h"
+#include "editor/editor_run_script.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/editor_spin_slider.h"
#include "editor/editor_themes.h"
+#include "editor/export_template_manager.h"
+#include "editor/fileserver/editor_file_server.h"
+#include "editor/filesystem_dock.h"
#include "editor/import/editor_import_collada.h"
#include "editor/import/editor_scene_importer_gltf.h"
#include "editor/import/resource_importer_bitmask.h"
@@ -71,7 +99,11 @@
#include "editor/import/resource_importer_texture.h"
#include "editor/import/resource_importer_texture_atlas.h"
#include "editor/import/resource_importer_wav.h"
+#include "editor/import_dock.h"
#include "editor/multi_node_edit.h"
+#include "editor/node_dock.h"
+#include "editor/pane_drag.h"
+#include "editor/plugin_config_dialog.h"
#include "editor/plugins/animation_blend_space_1d_editor.h"
#include "editor/plugins/animation_blend_space_2d_editor.h"
#include "editor/plugins/animation_blend_tree_editor_plugin.h"
@@ -128,9 +160,15 @@
#include "editor/plugins/tile_set_editor_plugin.h"
#include "editor/plugins/version_control_editor_plugin.h"
#include "editor/plugins/visual_shader_editor_plugin.h"
+#include "editor/progress_dialog.h"
+#include "editor/project_export.h"
+#include "editor/project_settings_editor.h"
#include "editor/pvrtc_compress.h"
+#include "editor/quick_open.h"
#include "editor/register_exporters.h"
+#include "editor/run_settings_dialog.h"
#include "editor/script_editor_debugger.h"
+#include "editor/settings_config_dialog.h"
#include <stdio.h>
@@ -1021,71 +1059,75 @@ void EditorNode::_find_node_types(Node *p_node, int &count_2d, int &count_3d) {
void EditorNode::_save_scene_with_preview(String p_file, int p_idx) {
EditorProgress save("save", TTR("Saving Scene"), 4);
- save.step(TTR("Analyzing"), 0);
- int c2d = 0;
- int c3d = 0;
- _find_node_types(editor_data.get_edited_scene_root(), c2d, c3d);
+ if (editor_data.get_edited_scene_root() != NULL) {
+ save.step(TTR("Analyzing"), 0);
- bool is2d;
- if (c3d < c2d) {
- is2d = true;
- } else {
- is2d = false;
- }
- save.step(TTR("Creating Thumbnail"), 1);
- //current view?
+ int c2d = 0;
+ int c3d = 0;
- Ref<Image> img;
- if (is2d) {
- img = scene_root->get_texture()->get_data();
- } else {
- img = SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_texture()->get_data();
- }
+ _find_node_types(editor_data.get_edited_scene_root(), c2d, c3d);
- if (img.is_valid()) {
+ bool is2d;
+ if (c3d < c2d) {
+ is2d = true;
+ } else {
+ is2d = false;
+ }
+ save.step(TTR("Creating Thumbnail"), 1);
+ //current view?
- img = img->duplicate();
+ Ref<Image> img;
+ if (is2d) {
+ img = scene_root->get_texture()->get_data();
+ } else {
+ img = SpatialEditor::get_singleton()->get_editor_viewport(0)->get_viewport_node()->get_texture()->get_data();
+ }
- save.step(TTR("Creating Thumbnail"), 2);
- save.step(TTR("Creating Thumbnail"), 3);
+ if (img.is_valid()) {
- int preview_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
- preview_size *= EDSCALE;
+ img = img->duplicate();
- // consider a square region
- int vp_size = MIN(img->get_width(), img->get_height());
- int x = (img->get_width() - vp_size) / 2;
- int y = (img->get_height() - vp_size) / 2;
+ save.step(TTR("Creating Thumbnail"), 2);
+ save.step(TTR("Creating Thumbnail"), 3);
- if (vp_size < preview_size) {
- // just square it.
- img->crop_from_point(x, y, vp_size, vp_size);
- } else {
- int ratio = vp_size / preview_size;
- int size = preview_size * MAX(1, ratio / 2);
+ int preview_size = EditorSettings::get_singleton()->get("filesystem/file_dialog/thumbnail_size");
+ preview_size *= EDSCALE;
- x = (img->get_width() - size) / 2;
- y = (img->get_height() - size) / 2;
+ // consider a square region
+ int vp_size = MIN(img->get_width(), img->get_height());
+ int x = (img->get_width() - vp_size) / 2;
+ int y = (img->get_height() - vp_size) / 2;
- img->crop_from_point(x, y, size, size);
- img->resize(preview_size, preview_size, Image::INTERPOLATE_LANCZOS);
- }
- img->convert(Image::FORMAT_RGB8);
+ if (vp_size < preview_size) {
+ // just square it.
+ img->crop_from_point(x, y, vp_size, vp_size);
+ } else {
+ int ratio = vp_size / preview_size;
+ int size = preview_size * MAX(1, ratio / 2);
- img->flip_y();
+ x = (img->get_width() - size) / 2;
+ y = (img->get_height() - size) / 2;
- //save thumbnail directly, as thumbnailer may not update due to actual scene not changing md5
- String temp_path = EditorSettings::get_singleton()->get_cache_dir();
- String cache_base = ProjectSettings::get_singleton()->globalize_path(p_file).md5_text();
- cache_base = temp_path.plus_file("resthumb-" + cache_base);
+ img->crop_from_point(x, y, size, size);
+ img->resize(preview_size, preview_size, Image::INTERPOLATE_LANCZOS);
+ }
+ img->convert(Image::FORMAT_RGB8);
+
+ img->flip_y();
- //does not have it, try to load a cached thumbnail
+ //save thumbnail directly, as thumbnailer may not update due to actual scene not changing md5
+ String temp_path = EditorSettings::get_singleton()->get_cache_dir();
+ String cache_base = ProjectSettings::get_singleton()->globalize_path(p_file).md5_text();
+ cache_base = temp_path.plus_file("resthumb-" + cache_base);
- String file = cache_base + ".png";
+ //does not have it, try to load a cached thumbnail
- post_process_preview(img);
- img->save_png(file);
+ String file = cache_base + ".png";
+
+ post_process_preview(img);
+ img->save_png(file);
+ }
}
save.step(TTR("Saving Scene"), 4);
diff --git a/editor/editor_node.h b/editor/editor_node.h
index c9002c309e..38f529252f 100644
--- a/editor/editor_node.h
+++ b/editor/editor_node.h
@@ -31,66 +31,59 @@
#ifndef EDITOR_NODE_H
#define EDITOR_NODE_H
-#include "core/print_string.h"
-#include "editor/audio_stream_preview.h"
-#include "editor/connections_dialog.h"
-#include "editor/create_dialog.h"
-#include "editor/editor_about.h"
#include "editor/editor_data.h"
-#include "editor/editor_export.h"
-#include "editor/editor_feature_profile.h"
#include "editor/editor_folding.h"
-#include "editor/editor_inspector.h"
-#include "editor/editor_layouts_dialog.h"
-#include "editor/editor_log.h"
-#include "editor/editor_plugin.h"
-#include "editor/editor_resource_preview.h"
#include "editor/editor_run.h"
-#include "editor/editor_run_native.h"
-#include "editor/editor_run_script.h"
-#include "editor/editor_scale.h"
-#include "editor/editor_sub_scene.h"
-#include "editor/export_template_manager.h"
-#include "editor/fileserver/editor_file_server.h"
-#include "editor/filesystem_dock.h"
-#include "editor/groups_editor.h"
-#include "editor/import_dock.h"
#include "editor/inspector_dock.h"
-#include "editor/node_dock.h"
-#include "editor/pane_drag.h"
-#include "editor/plugin_config_dialog.h"
-#include "editor/progress_dialog.h"
-#include "editor/project_export.h"
-#include "editor/project_settings_editor.h"
#include "editor/property_editor.h"
-#include "editor/quick_open.h"
-#include "editor/reparent_dialog.h"
-#include "editor/run_settings_dialog.h"
#include "editor/scene_tree_dock.h"
-#include "editor/scene_tree_editor.h"
-#include "editor/script_create_dialog.h"
-#include "editor/settings_config_dialog.h"
-#include "scene/gui/center_container.h"
-#include "scene/gui/control.h"
-#include "scene/gui/dialogs.h"
-#include "scene/gui/file_dialog.h"
-#include "scene/gui/menu_button.h"
-#include "scene/gui/panel.h"
-#include "scene/gui/panel_container.h"
-#include "scene/gui/separator.h"
-#include "scene/gui/split_container.h"
-#include "scene/gui/tab_container.h"
-#include "scene/gui/tabs.h"
-#include "scene/gui/texture_progress.h"
-#include "scene/gui/tool_button.h"
-#include "scene/gui/tree.h"
-#include "scene/gui/viewport_container.h"
typedef void (*EditorNodeInitCallback)();
typedef void (*EditorPluginInitializeCallback)();
typedef bool (*EditorBuildCallback)();
+class AcceptDialog;
+class AudioStreamPreviewGenerator;
+class BackgroundProgress;
+class CenterContainer;
+class ConfirmationDialog;
+class Control;
+class DependencyEditor;
+class DependencyErrorDialog;
+class EditorAbout;
+class EditorExport;
+class EditorFeatureProfileManager;
+class EditorFileServer;
+class EditorInspector;
+class EditorLayoutsDialog;
+class EditorLog;
+class EditorPlugin;
class EditorPluginList;
+class EditorQuickOpen;
+class EditorResourcePreview;
+class EditorRunNative;
+class EditorSettingsDialog;
+class ExportTemplateManager;
+class FileSystemDock;
+class HSplitContainer;
+class ImportDock;
+class MenuButton;
+class NodeDock;
+class OrphanResourcesDialog;
+class PaneDrag;
+class Panel;
+class PanelContainer;
+class PluginConfigDialog;
+class ProgressDialog;
+class ProjectExportDialog;
+class ProjectSettingsEditor;
+class RunSettingsDialog;
+class ScriptCreateDialog;
+class TabContainer;
+class Tabs;
+class TextureProgress;
+class ToolButton;
+class VSplitContainer;
class EditorNode : public Node {
diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp
index 310a107ca9..b6ccacb03e 100644
--- a/editor/editor_plugin.cpp
+++ b/editor/editor_plugin.cpp
@@ -30,8 +30,11 @@
#include "editor_plugin.h"
+#include "editor/editor_export.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
+#include "editor/filesystem_dock.h"
+#include "editor/project_settings_editor.h"
#include "editor_resource_preview.h"
#include "main/main.h"
#include "plugins/canvas_item_editor_plugin.h"
diff --git a/editor/editor_plugin_settings.cpp b/editor/editor_plugin_settings.cpp
index 514b3ff5d2..6de4030a30 100644
--- a/editor/editor_plugin_settings.cpp
+++ b/editor/editor_plugin_settings.cpp
@@ -35,6 +35,7 @@
#include "core/os/main_loop.h"
#include "core/project_settings.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "scene/gui/margin_container.h"
void EditorPluginSettings::_notification(int p_what) {
diff --git a/editor/editor_properties.cpp b/editor/editor_properties.cpp
index 4bce6f34d3..4ed87c67dc 100644
--- a/editor/editor_properties.cpp
+++ b/editor/editor_properties.cpp
@@ -31,8 +31,10 @@
#include "editor_properties.h"
#include "editor/editor_resource_preview.h"
+#include "editor/filesystem_dock.h"
#include "editor_node.h"
#include "editor_properties_array_dict.h"
+#include "editor_scale.h"
#include "scene/main/viewport.h"
///////////////////// NULL /////////////////////////
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp
index 87e8a53e94..0bbc3424b5 100644
--- a/editor/editor_settings.cpp
+++ b/editor/editor_settings.cpp
@@ -34,6 +34,7 @@
#include "core/io/compression.h"
#include "core/io/config_file.h"
#include "core/io/file_access_memory.h"
+#include "core/io/ip.h"
#include "core/io/resource_loader.h"
#include "core/io/resource_saver.h"
#include "core/io/translation_loader_po.h"
diff --git a/editor/export_template_manager.cpp b/editor/export_template_manager.cpp
index 97d5db5f6e..9b306c50d0 100644
--- a/editor/export_template_manager.cpp
+++ b/editor/export_template_manager.cpp
@@ -38,6 +38,8 @@
#include "core/version.h"
#include "editor_node.h"
#include "editor_scale.h"
+#include "progress_dialog.h"
+#include "scene/gui/link_button.h"
void ExportTemplateManager::_update_template_list() {
diff --git a/editor/filesystem_dock.cpp b/editor/filesystem_dock.cpp
index eb3ae33065..5b08c3c567 100644
--- a/editor/filesystem_dock.cpp
+++ b/editor/filesystem_dock.cpp
@@ -36,8 +36,12 @@
#include "core/os/keyboard.h"
#include "core/os/os.h"
#include "core/project_settings.h"
+#include "editor_feature_profile.h"
#include "editor_node.h"
+#include "editor_resource_preview.h"
+#include "editor_scale.h"
#include "editor_settings.h"
+#include "import_dock.h"
#include "scene/main/viewport.h"
#include "scene/resources/packed_scene.h"
@@ -1746,8 +1750,8 @@ void FileSystemDock::_file_option(int p_option, const Vector<String> &p_selected
if (!fpath.ends_with("/")) {
fpath = fpath.get_base_dir();
}
- make_script_dialog_text->config("Node", fpath.plus_file("new_script.gd"), false);
- make_script_dialog_text->popup_centered(Size2(300, 300) * EDSCALE);
+ make_script_dialog->config("Node", fpath.plus_file("new_script.gd"), false);
+ make_script_dialog->popup_centered(Size2(300, 300) * EDSCALE);
} break;
case FILE_COPY_PATH: {
@@ -2682,9 +2686,9 @@ FileSystemDock::FileSystemDock(EditorNode *p_editor) {
make_scene_dialog->register_text_enter(make_scene_dialog_text);
make_scene_dialog->connect("confirmed", this, "_make_scene_confirm");
- make_script_dialog_text = memnew(ScriptCreateDialog);
- make_script_dialog_text->set_title(TTR("Create Script"));
- add_child(make_script_dialog_text);
+ make_script_dialog = memnew(ScriptCreateDialog);
+ make_script_dialog->set_title(TTR("Create Script"));
+ add_child(make_script_dialog);
new_resource_dialog = memnew(CreateDialog);
add_child(new_resource_dialog);
diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h
index d81a5133f2..f8e0eb4d71 100644
--- a/editor/filesystem_dock.h
+++ b/editor/filesystem_dock.h
@@ -140,7 +140,7 @@ private:
ConfirmationDialog *make_scene_dialog;
LineEdit *make_scene_dialog_text;
ConfirmationDialog *overwrite_dialog;
- ScriptCreateDialog *make_script_dialog_text;
+ ScriptCreateDialog *make_script_dialog;
CreateDialog *new_resource_dialog;
bool always_show_folders;
diff --git a/editor/groups_editor.cpp b/editor/groups_editor.cpp
index b2db1f85dd..41878d18b0 100644
--- a/editor/groups_editor.cpp
+++ b/editor/groups_editor.cpp
@@ -31,6 +31,7 @@
#include "groups_editor.h"
#include "editor/scene_tree_editor.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "scene/gui/box_container.h"
#include "scene/gui/label.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/import/editor_scene_importer_gltf.cpp b/editor/import/editor_scene_importer_gltf.cpp
index be066e15a5..796b950444 100644
--- a/editor/import/editor_scene_importer_gltf.cpp
+++ b/editor/import/editor_scene_importer_gltf.cpp
@@ -855,25 +855,24 @@ PoolVector<Color> EditorSceneImporterGLTF::_decode_accessor_as_color(GLTFState &
const int type = state.accessors[p_accessor].type;
ERR_FAIL_COND_V(!(type == TYPE_VEC3 || type == TYPE_VEC4), ret);
- int components;
- if (type == TYPE_VEC3) {
- components = 3;
- } else { // TYPE_VEC4
- components = 4;
+ int vec_len = 3;
+ if (type == TYPE_VEC4) {
+ vec_len = 4;
}
- ERR_FAIL_COND_V(attribs.size() % components != 0, ret);
+ ERR_FAIL_COND_V(attribs.size() % vec_len != 0, ret);
const double *attribs_ptr = attribs.ptr();
- const int ret_size = attribs.size() / components;
+ const int ret_size = attribs.size() / vec_len;
ret.resize(ret_size);
{
PoolVector<Color>::Write w = ret.write();
for (int i = 0; i < ret_size; i++) {
- w[i] = Color(attribs_ptr[i * 4 + 0], attribs_ptr[i * 4 + 1], attribs_ptr[i * 4 + 2], components == 4 ? attribs_ptr[i * 4 + 3] : 1.0);
+ w[i] = Color(attribs_ptr[i * vec_len + 0], attribs_ptr[i * vec_len + 1], attribs_ptr[i * vec_len + 2], vec_len == 4 ? attribs_ptr[i * 4 + 3] : 1.0);
}
}
return ret;
}
+
Vector<Quat> EditorSceneImporterGLTF::_decode_accessor_as_quat(GLTFState &state, const GLTFAccessorIndex p_accessor, const bool p_for_vertex) {
const Vector<double> attribs = _decode_accessor(state, p_accessor, p_for_vertex);
diff --git a/editor/import_dock.cpp b/editor/import_dock.cpp
index 947e322075..7e9c9d958e 100644
--- a/editor/import_dock.cpp
+++ b/editor/import_dock.cpp
@@ -30,6 +30,7 @@
#include "import_dock.h"
#include "editor_node.h"
+#include "editor_resource_preview.h"
class ImportDockParameters : public Object {
GDCLASS(ImportDockParameters, Object);
diff --git a/editor/node_dock.cpp b/editor/node_dock.cpp
index 7ba1796600..e666135346 100644
--- a/editor/node_dock.cpp
+++ b/editor/node_dock.cpp
@@ -31,6 +31,7 @@
#include "node_dock.h"
#include "editor_node.h"
+#include "editor_scale.h"
void NodeDock::show_groups() {
diff --git a/editor/plugin_config_dialog.cpp b/editor/plugin_config_dialog.cpp
index 971e746509..0291a08118 100644
--- a/editor/plugin_config_dialog.cpp
+++ b/editor/plugin_config_dialog.cpp
@@ -33,6 +33,8 @@
#include "core/os/dir_access.h"
#include "editor/editor_node.h"
#include "editor/editor_plugin.h"
+#include "editor/editor_scale.h"
+#include "editor/project_settings_editor.h"
#include "modules/gdscript/gdscript.h"
#include "scene/gui/grid_container.h"
diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp
index 7f023af848..f84d383606 100644
--- a/editor/plugins/abstract_polygon_2d_editor.cpp
+++ b/editor/plugins/abstract_polygon_2d_editor.cpp
@@ -32,6 +32,7 @@
#include "canvas_item_editor_plugin.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
AbstractPolygon2DEditor::Vertex::Vertex() :
polygon(-1),
diff --git a/editor/plugins/animation_blend_space_1d_editor.cpp b/editor/plugins/animation_blend_space_1d_editor.cpp
index 475e4c8d67..f684745d1d 100644
--- a/editor/plugins/animation_blend_space_1d_editor.cpp
+++ b/editor/plugins/animation_blend_space_1d_editor.cpp
@@ -31,6 +31,7 @@
#include "animation_blend_space_1d_editor.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
#include "scene/animation/animation_blend_tree.h"
StringName AnimationNodeBlendSpace1DEditor::get_blend_position_path() const {
diff --git a/editor/plugins/animation_blend_space_2d_editor.cpp b/editor/plugins/animation_blend_space_2d_editor.cpp
index b422e3e927..fe13bbdb99 100644
--- a/editor/plugins/animation_blend_space_2d_editor.cpp
+++ b/editor/plugins/animation_blend_space_2d_editor.cpp
@@ -35,6 +35,7 @@
#include "core/os/input.h"
#include "core/os/keyboard.h"
#include "core/project_settings.h"
+#include "editor/editor_scale.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.cpp b/editor/plugins/animation_blend_tree_editor_plugin.cpp
index e147206ec4..d101dec642 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.cpp
+++ b/editor/plugins/animation_blend_tree_editor_plugin.cpp
@@ -35,9 +35,11 @@
#include "core/os/keyboard.h"
#include "core/project_settings.h"
#include "editor/editor_inspector.h"
+#include "editor/editor_scale.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/panel.h"
+#include "scene/gui/progress_bar.h"
#include "scene/main/viewport.h"
void AnimationNodeBlendTreeEditor::add_custom_type(const String &p_name, const Ref<Script> &p_script) {
diff --git a/editor/plugins/animation_blend_tree_editor_plugin.h b/editor/plugins/animation_blend_tree_editor_plugin.h
index 77b57a50d0..df3e681322 100644
--- a/editor/plugins/animation_blend_tree_editor_plugin.h
+++ b/editor/plugins/animation_blend_tree_editor_plugin.h
@@ -41,6 +41,8 @@
#include "scene/gui/popup.h"
#include "scene/gui/tree.h"
+class ProgressBar;
+
class AnimationNodeBlendTreeEditor : public AnimationTreeNodeEditorPlugin {
GDCLASS(AnimationNodeBlendTreeEditor, AnimationTreeNodeEditorPlugin);
diff --git a/editor/plugins/animation_player_editor_plugin.cpp b/editor/plugins/animation_player_editor_plugin.cpp
index 1480cc6ac4..16be9f0781 100644
--- a/editor/plugins/animation_player_editor_plugin.cpp
+++ b/editor/plugins/animation_player_editor_plugin.cpp
@@ -36,6 +36,7 @@
#include "core/os/keyboard.h"
#include "core/project_settings.h"
#include "editor/animation_track_editor.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
// For onion skinning.
diff --git a/editor/plugins/animation_state_machine_editor.cpp b/editor/plugins/animation_state_machine_editor.cpp
index 425bfc5eb5..884e665494 100644
--- a/editor/plugins/animation_state_machine_editor.cpp
+++ b/editor/plugins/animation_state_machine_editor.cpp
@@ -35,6 +35,7 @@
#include "core/os/input.h"
#include "core/os/keyboard.h"
#include "core/project_settings.h"
+#include "editor/editor_scale.h"
#include "scene/animation/animation_blend_tree.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp
index ce31714e0c..a4d6071099 100644
--- a/editor/plugins/asset_library_editor_plugin.cpp
+++ b/editor/plugins/asset_library_editor_plugin.cpp
@@ -33,7 +33,9 @@
#include "core/io/json.h"
#include "core/version.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/project_settings_editor.h"
void EditorAssetLibraryItem::configure(const String &p_title, int p_asset_id, const String &p_category, int p_category_id, const String &p_author, int p_author_id, const String &p_cost) {
diff --git a/editor/plugins/audio_stream_editor_plugin.cpp b/editor/plugins/audio_stream_editor_plugin.cpp
index 0ab3d26c85..c6a375d3aa 100644
--- a/editor/plugins/audio_stream_editor_plugin.cpp
+++ b/editor/plugins/audio_stream_editor_plugin.cpp
@@ -32,6 +32,7 @@
#include "core/io/resource_loader.h"
#include "core/project_settings.h"
+#include "editor/audio_stream_preview.h"
#include "editor/editor_settings.h"
void AudioStreamEditor::_notification(int p_what) {
diff --git a/editor/plugins/canvas_item_editor_plugin.cpp b/editor/plugins/canvas_item_editor_plugin.cpp
index 17765c6454..4512a228ef 100644
--- a/editor/plugins/canvas_item_editor_plugin.cpp
+++ b/editor/plugins/canvas_item_editor_plugin.cpp
@@ -35,6 +35,7 @@
#include "core/print_string.h"
#include "core/project_settings.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
@@ -47,6 +48,7 @@
#include "scene/2d/touch_screen_button.h"
#include "scene/gui/grid_container.h"
#include "scene/gui/nine_patch_rect.h"
+#include "scene/gui/viewport_container.h"
#include "scene/main/canvas_layer.h"
#include "scene/main/viewport.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/plugins/curve_editor_plugin.cpp b/editor/plugins/curve_editor_plugin.cpp
index 6e15bad9af..9b0ddab0ce 100644
--- a/editor/plugins/curve_editor_plugin.cpp
+++ b/editor/plugins/curve_editor_plugin.cpp
@@ -34,6 +34,7 @@
#include "core/core_string_names.h"
#include "core/os/input.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
CurveEditor::CurveEditor() {
_selected_point = -1;
diff --git a/editor/plugins/curve_editor_plugin.h b/editor/plugins/curve_editor_plugin.h
index 9071146863..bf655400db 100644
--- a/editor/plugins/curve_editor_plugin.h
+++ b/editor/plugins/curve_editor_plugin.h
@@ -33,6 +33,7 @@
#include "editor/editor_node.h"
#include "editor/editor_plugin.h"
+#include "editor/editor_resource_preview.h"
#include "scene/resources/curve.h"
// Edits a y(x) curve
diff --git a/editor/plugins/editor_preview_plugins.cpp b/editor/plugins/editor_preview_plugins.cpp
index 204562ac38..75ae050612 100644
--- a/editor/plugins/editor_preview_plugins.cpp
+++ b/editor/plugins/editor_preview_plugins.cpp
@@ -40,6 +40,7 @@
#include "scene/resources/dynamic_font.h"
#include "scene/resources/material.h"
#include "scene/resources/mesh.h"
+#include "servers/audio/audio_stream.h"
void post_process_preview(Ref<Image> p_image) {
diff --git a/editor/plugins/gradient_editor_plugin.cpp b/editor/plugins/gradient_editor_plugin.cpp
index e85c475ad7..d4c6622674 100644
--- a/editor/plugins/gradient_editor_plugin.cpp
+++ b/editor/plugins/gradient_editor_plugin.cpp
@@ -31,6 +31,7 @@
#include "gradient_editor_plugin.h"
#include "canvas_item_editor_plugin.h"
+#include "editor/editor_scale.h"
#include "spatial_editor_plugin.h"
Size2 GradientEditor::get_minimum_size() const {
diff --git a/editor/plugins/item_list_editor_plugin.cpp b/editor/plugins/item_list_editor_plugin.cpp
index b3f3ccf501..2c1cb32143 100644
--- a/editor/plugins/item_list_editor_plugin.cpp
+++ b/editor/plugins/item_list_editor_plugin.cpp
@@ -31,6 +31,7 @@
#include "item_list_editor_plugin.h"
#include "core/io/resource_loader.h"
+#include "editor/editor_scale.h"
bool ItemListPlugin::_set(const StringName &p_name, const Variant &p_value) {
diff --git a/editor/plugins/material_editor_plugin.cpp b/editor/plugins/material_editor_plugin.cpp
index e125c18ef1..840787dda1 100644
--- a/editor/plugins/material_editor_plugin.cpp
+++ b/editor/plugins/material_editor_plugin.cpp
@@ -30,6 +30,8 @@
#include "material_editor_plugin.h"
+#include "editor/editor_scale.h"
+#include "scene/gui/viewport_container.h"
#include "scene/resources/particles_material.h"
void MaterialEditor::_notification(int p_what) {
diff --git a/editor/plugins/material_editor_plugin.h b/editor/plugins/material_editor_plugin.h
index 1405127ab3..c54c780c7e 100644
--- a/editor/plugins/material_editor_plugin.h
+++ b/editor/plugins/material_editor_plugin.h
@@ -41,6 +41,8 @@
#include "scene/3d/mesh_instance.h"
#include "scene/resources/material.h"
+class ViewportContainer;
+
class MaterialEditor : public Control {
GDCLASS(MaterialEditor, Control);
diff --git a/editor/plugins/mesh_editor_plugin.cpp b/editor/plugins/mesh_editor_plugin.cpp
index 442110cc84..d3bdca14e7 100644
--- a/editor/plugins/mesh_editor_plugin.cpp
+++ b/editor/plugins/mesh_editor_plugin.cpp
@@ -30,6 +30,8 @@
#include "mesh_editor_plugin.h"
+#include "editor/editor_scale.h"
+
void MeshEditor::_gui_input(Ref<InputEvent> p_event) {
Ref<InputEventMouseMotion> mm = p_event;
diff --git a/editor/plugins/mesh_editor_plugin.h b/editor/plugins/mesh_editor_plugin.h
index 4c2a81ed70..1a2741d00a 100644
--- a/editor/plugins/mesh_editor_plugin.h
+++ b/editor/plugins/mesh_editor_plugin.h
@@ -36,6 +36,7 @@
#include "scene/3d/camera.h"
#include "scene/3d/light.h"
#include "scene/3d/mesh_instance.h"
+#include "scene/gui/viewport_container.h"
#include "scene/resources/material.h"
class MeshEditor : public ViewportContainer {
diff --git a/editor/plugins/mesh_instance_editor_plugin.cpp b/editor/plugins/mesh_instance_editor_plugin.cpp
index 5b5b2a0607..1ead1b8062 100644
--- a/editor/plugins/mesh_instance_editor_plugin.cpp
+++ b/editor/plugins/mesh_instance_editor_plugin.cpp
@@ -30,6 +30,7 @@
#include "mesh_instance_editor_plugin.h"
+#include "editor/editor_scale.h"
#include "scene/3d/collision_shape.h"
#include "scene/3d/navigation_mesh.h"
#include "scene/3d/physics_body.h"
diff --git a/editor/plugins/path_2d_editor_plugin.cpp b/editor/plugins/path_2d_editor_plugin.cpp
index f02dc0bd6d..dcb32641e8 100644
--- a/editor/plugins/path_2d_editor_plugin.cpp
+++ b/editor/plugins/path_2d_editor_plugin.cpp
@@ -33,6 +33,7 @@
#include "canvas_item_editor_plugin.h"
#include "core/os/file_access.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
void Path2DEditor::_notification(int p_what) {
diff --git a/editor/plugins/polygon_2d_editor_plugin.cpp b/editor/plugins/polygon_2d_editor_plugin.cpp
index 503e6ac135..5512366f4f 100644
--- a/editor/plugins/polygon_2d_editor_plugin.cpp
+++ b/editor/plugins/polygon_2d_editor_plugin.cpp
@@ -34,6 +34,7 @@
#include "core/os/file_access.h"
#include "core/os/input.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "scene/2d/skeleton_2d.h"
diff --git a/editor/plugins/script_editor_plugin.cpp b/editor/plugins/script_editor_plugin.cpp
index 9e6201db2b..b809397b95 100644
--- a/editor/plugins/script_editor_plugin.cpp
+++ b/editor/plugins/script_editor_plugin.cpp
@@ -37,7 +37,10 @@
#include "core/os/os.h"
#include "core/project_settings.h"
#include "editor/editor_node.h"
+#include "editor/editor_run_script.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/filesystem_dock.h"
#include "editor/find_in_files.h"
#include "editor/node_dock.h"
#include "editor/plugins/shader_editor_plugin.h"
diff --git a/editor/plugins/script_text_editor.cpp b/editor/plugins/script_text_editor.cpp
index 35ca97b427..ef6f864a87 100644
--- a/editor/plugins/script_text_editor.cpp
+++ b/editor/plugins/script_text_editor.cpp
@@ -33,6 +33,7 @@
#include "core/math/expression.h"
#include "core/os/keyboard.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/script_editor_debugger.h"
diff --git a/editor/plugins/spatial_editor_plugin.cpp b/editor/plugins/spatial_editor_plugin.cpp
index b590fc5ed1..a7c1becabd 100644
--- a/editor/plugins/spatial_editor_plugin.cpp
+++ b/editor/plugins/spatial_editor_plugin.cpp
@@ -37,6 +37,7 @@
#include "core/project_settings.h"
#include "core/sort_array.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/script_editor_plugin.h"
@@ -47,6 +48,7 @@
#include "scene/3d/mesh_instance.h"
#include "scene/3d/physics_body.h"
#include "scene/3d/visual_instance.h"
+#include "scene/gui/viewport_container.h"
#include "scene/resources/packed_scene.h"
#include "scene/resources/surface_tool.h"
diff --git a/editor/plugins/spatial_editor_plugin.h b/editor/plugins/spatial_editor_plugin.h
index 65e3c32ca8..ecb7363401 100644
--- a/editor/plugins/spatial_editor_plugin.h
+++ b/editor/plugins/spatial_editor_plugin.h
@@ -41,6 +41,7 @@
class Camera;
class SpatialEditor;
class EditorSpatialGizmoPlugin;
+class ViewportContainer;
class EditorSpatialGizmo : public SpatialGizmo {
diff --git a/editor/plugins/sprite_editor_plugin.cpp b/editor/plugins/sprite_editor_plugin.cpp
index b3864081d9..7759fd2fa6 100644
--- a/editor/plugins/sprite_editor_plugin.cpp
+++ b/editor/plugins/sprite_editor_plugin.cpp
@@ -31,6 +31,7 @@
#include "sprite_editor_plugin.h"
#include "canvas_item_editor_plugin.h"
+#include "editor/editor_scale.h"
#include "scene/2d/collision_polygon_2d.h"
#include "scene/2d/light_occluder_2d.h"
#include "scene/2d/mesh_instance_2d.h"
diff --git a/editor/plugins/sprite_frames_editor_plugin.cpp b/editor/plugins/sprite_frames_editor_plugin.cpp
index b002585e03..dd58ec23ce 100644
--- a/editor/plugins/sprite_frames_editor_plugin.cpp
+++ b/editor/plugins/sprite_frames_editor_plugin.cpp
@@ -32,8 +32,10 @@
#include "core/io/resource_loader.h"
#include "core/project_settings.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "scene/3d/sprite_3d.h"
+#include "scene/gui/center_container.h"
void SpriteFramesEditor::_gui_input(Ref<InputEvent> p_event) {
}
diff --git a/editor/plugins/style_box_editor_plugin.cpp b/editor/plugins/style_box_editor_plugin.cpp
index 7e5e278689..90a47999e0 100644
--- a/editor/plugins/style_box_editor_plugin.cpp
+++ b/editor/plugins/style_box_editor_plugin.cpp
@@ -30,6 +30,8 @@
#include "style_box_editor_plugin.h"
+#include "editor/editor_scale.h"
+
bool EditorInspectorPluginStyleBox::can_handle(Object *p_object) {
return Object::cast_to<StyleBox>(p_object) != NULL;
diff --git a/editor/plugins/texture_region_editor_plugin.cpp b/editor/plugins/texture_region_editor_plugin.cpp
index 8e49bba7b2..f576eb96c9 100644
--- a/editor/plugins/texture_region_editor_plugin.cpp
+++ b/editor/plugins/texture_region_editor_plugin.cpp
@@ -33,6 +33,7 @@
#include "core/core_string_names.h"
#include "core/os/input.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
#include "scene/gui/check_box.h"
/**
diff --git a/editor/plugins/theme_editor_plugin.cpp b/editor/plugins/theme_editor_plugin.cpp
index e1aa83e9ab..52c28b84f6 100644
--- a/editor/plugins/theme_editor_plugin.cpp
+++ b/editor/plugins/theme_editor_plugin.cpp
@@ -32,6 +32,8 @@
#include "core/os/file_access.h"
#include "core/version.h"
+#include "editor/editor_scale.h"
+#include "scene/gui/progress_bar.h"
void ThemeEditor::edit(const Ref<Theme> &p_theme) {
@@ -908,7 +910,7 @@ ThemeEditorPlugin::ThemeEditorPlugin(EditorNode *p_node) {
editor = p_node;
theme_editor = memnew(ThemeEditor);
- theme_editor->set_custom_minimum_size(Size2(0, 200));
+ theme_editor->set_custom_minimum_size(Size2(0, 200) * EDSCALE);
button = editor->add_bottom_panel_item(TTR("Theme"), theme_editor);
button->hide();
diff --git a/editor/plugins/tile_set_editor_plugin.cpp b/editor/plugins/tile_set_editor_plugin.cpp
index 66a6776a88..6e0158670d 100644
--- a/editor/plugins/tile_set_editor_plugin.cpp
+++ b/editor/plugins/tile_set_editor_plugin.cpp
@@ -32,6 +32,7 @@
#include "core/os/input.h"
#include "core/os/keyboard.h"
+#include "editor/editor_scale.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "scene/2d/physics_body_2d.h"
#include "scene/2d/sprite.h"
diff --git a/editor/plugins/version_control_editor_plugin.cpp b/editor/plugins/version_control_editor_plugin.cpp
index aa3bd74c49..d5dca9b61e 100644
--- a/editor/plugins/version_control_editor_plugin.cpp
+++ b/editor/plugins/version_control_editor_plugin.cpp
@@ -33,6 +33,7 @@
#include "core/script_language.h"
#include "editor/editor_file_system.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
VersionControlEditorPlugin *VersionControlEditorPlugin::singleton = NULL;
diff --git a/editor/plugins/visual_shader_editor_plugin.cpp b/editor/plugins/visual_shader_editor_plugin.cpp
index 1a74779fb5..427b810672 100644
--- a/editor/plugins/visual_shader_editor_plugin.cpp
+++ b/editor/plugins/visual_shader_editor_plugin.cpp
@@ -35,7 +35,9 @@
#include "core/os/input.h"
#include "core/os/keyboard.h"
#include "core/project_settings.h"
+#include "editor/editor_log.h"
#include "editor/editor_properties.h"
+#include "editor/editor_scale.h"
#include "scene/animation/animation_player.h"
#include "scene/gui/menu_button.h"
#include "scene/gui/panel.h"
diff --git a/editor/project_export.cpp b/editor/project_export.cpp
index 5e2e98a1d8..cca40054a4 100644
--- a/editor/project_export.cpp
+++ b/editor/project_export.cpp
@@ -40,6 +40,7 @@
#include "core/project_settings.h"
#include "editor_data.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "scene/gui/box_container.h"
#include "scene/gui/margin_container.h"
diff --git a/editor/project_settings_editor.cpp b/editor/project_settings_editor.cpp
index 0428aafe7e..0dbc15fc78 100644
--- a/editor/project_settings_editor.cpp
+++ b/editor/project_settings_editor.cpp
@@ -35,7 +35,9 @@
#include "core/os/keyboard.h"
#include "core/project_settings.h"
#include "core/translation.h"
+#include "editor/editor_export.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "scene/gui/margin_container.h"
#include "scene/gui/tab_container.h"
diff --git a/editor/property_editor.cpp b/editor/property_editor.cpp
index ce82d44164..945eb4bfb7 100644
--- a/editor/property_editor.cpp
+++ b/editor/property_editor.cpp
@@ -47,7 +47,9 @@
#include "editor/editor_file_system.h"
#include "editor/editor_help.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
+#include "editor/filesystem_dock.h"
#include "editor/multi_node_edit.h"
#include "editor/property_selector.h"
#include "scene/gui/label.h"
diff --git a/editor/rename_dialog.cpp b/editor/rename_dialog.cpp
index cc9e14975f..9f77f9d82a 100644
--- a/editor/rename_dialog.cpp
+++ b/editor/rename_dialog.cpp
@@ -32,6 +32,7 @@
#include "core/print_string.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "editor_themes.h"
#include "modules/regex/regex.h"
@@ -106,7 +107,7 @@ RenameDialog::RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_und
// -- Feature Tabs
- const int feature_min_height = 160;
+ const int feature_min_height = 160 * EDSCALE;
Ref<Theme> collapse_theme = create_editor_theme();
collapse_theme->set_icon("checked", "CheckBox", collapse_theme->get_icon("GuiTreeArrowDown", "EditorIcons"));
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp
index 5c08482aa4..95e4b05586 100644
--- a/editor/scene_tree_dock.cpp
+++ b/editor/scene_tree_dock.cpp
@@ -35,7 +35,9 @@
#include "core/os/keyboard.h"
#include "core/project_settings.h"
+#include "editor/editor_feature_profile.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/editor_settings.h"
#include "editor/multi_node_edit.h"
#include "editor/plugins/animation_player_editor_plugin.h"
diff --git a/editor/scene_tree_editor.cpp b/editor/scene_tree_editor.cpp
index dc5eb4bbd0..433b1d91d4 100644
--- a/editor/scene_tree_editor.cpp
+++ b/editor/scene_tree_editor.cpp
@@ -32,9 +32,10 @@
#include "core/message_queue.h"
#include "core/print_string.h"
+#include "editor/editor_node.h"
+#include "editor/node_dock.h"
#include "editor/plugins/animation_player_editor_plugin.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
-#include "editor_node.h"
#include "scene/gui/label.h"
#include "scene/main/viewport.h"
#include "scene/resources/packed_scene.h"
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp
index fd34d8f5d6..c7ed612f29 100644
--- a/editor/script_editor_debugger.cpp
+++ b/editor/script_editor_debugger.cpp
@@ -35,9 +35,11 @@
#include "core/ustring.h"
#include "editor/plugins/canvas_item_editor_plugin.h"
#include "editor/plugins/spatial_editor_plugin.h"
+#include "editor_log.h"
#include "editor_network_profiler.h"
#include "editor_node.h"
#include "editor_profiler.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "main/performance.h"
#include "property_editor.h"
diff --git a/editor/settings_config_dialog.cpp b/editor/settings_config_dialog.cpp
index a780b117e1..5c3856ac27 100644
--- a/editor/settings_config_dialog.cpp
+++ b/editor/settings_config_dialog.cpp
@@ -33,7 +33,9 @@
#include "core/os/keyboard.h"
#include "core/project_settings.h"
#include "editor_file_system.h"
+#include "editor_log.h"
#include "editor_node.h"
+#include "editor_scale.h"
#include "editor_settings.h"
#include "scene/gui/margin_container.h"
#include "script_editor_debugger.h"
diff --git a/main/main.cpp b/main/main.cpp
index 3ac343a3c5..c1dc4e37ca 100644
--- a/main/main.cpp
+++ b/main/main.cpp
@@ -75,6 +75,7 @@
#include "editor/doc/doc_data_class_path.gen.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
+#include "editor/progress_dialog.h"
#include "editor/project_manager.h"
#endif
@@ -285,8 +286,8 @@ void Main::print_help(const char *p_binary) {
OS::get_singleton()->print(" -s, --script <script> Run a script.\n");
OS::get_singleton()->print(" --check-only Only parse for errors and quit (use with --script).\n");
#ifdef TOOLS_ENABLED
- OS::get_singleton()->print(" --export <target> Export the project using the given export target. Export only main pack if path ends with .pck or .zip.\n");
- OS::get_singleton()->print(" --export-debug <target> Like --export, but use debug template.\n");
+ OS::get_singleton()->print(" --export <target> <path> Export the project using the given export target. Export only main pack if path ends with .pck or .zip. <path> is relative to the project directory.\n");
+ OS::get_singleton()->print(" --export-debug <target> <path> Like --export, but use debug template.\n");
OS::get_singleton()->print(" --doctool <path> Dump the engine API reference to the given <path> in XML format, merging if existing files are found.\n");
OS::get_singleton()->print(" --no-docbase Disallow dumping the base types (used with --doctool).\n");
OS::get_singleton()->print(" --build-solutions Build the scripting solutions (e.g. for C# projects).\n");
diff --git a/modules/gdnative/gdnative_library_editor_plugin.cpp b/modules/gdnative/gdnative_library_editor_plugin.cpp
index 5c84222797..78d26dc827 100644
--- a/modules/gdnative/gdnative_library_editor_plugin.cpp
+++ b/modules/gdnative/gdnative_library_editor_plugin.cpp
@@ -32,6 +32,8 @@
#include "gdnative_library_editor_plugin.h"
#include "gdnative.h"
+#include "editor/editor_scale.h"
+
void GDNativeLibraryEditor::edit(Ref<GDNativeLibrary> p_library) {
library = p_library;
Ref<ConfigFile> config = p_library->get_config_file();
diff --git a/modules/gdnative/register_types.cpp b/modules/gdnative/register_types.cpp
index fa59c704d5..818da65fb1 100644
--- a/modules/gdnative/register_types.cpp
+++ b/modules/gdnative/register_types.cpp
@@ -47,6 +47,7 @@
#include "core/project_settings.h"
#ifdef TOOLS_ENABLED
+#include "editor/editor_export.h"
#include "editor/editor_node.h"
#include "gdnative_library_editor_plugin.h"
#include "gdnative_library_singleton_editor.h"
diff --git a/modules/gdscript/language_server/gdscript_language_server.cpp b/modules/gdscript/language_server/gdscript_language_server.cpp
index 8d58b99e02..ee4de3e216 100644
--- a/modules/gdscript/language_server/gdscript_language_server.cpp
+++ b/modules/gdscript/language_server/gdscript_language_server.cpp
@@ -31,6 +31,7 @@
#include "gdscript_language_server.h"
#include "core/os/file_access.h"
#include "core/os/os.h"
+#include "editor/editor_log.h"
#include "editor/editor_node.h"
GDScriptLanguageServer::GDScriptLanguageServer() {
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp
index 4536614379..f68c583278 100644
--- a/modules/mono/csharp_script.cpp
+++ b/modules/mono/csharp_script.cpp
@@ -42,6 +42,7 @@
#include "editor/bindings_generator.h"
#include "editor/csharp_project.h"
#include "editor/editor_node.h"
+#include "editor/node_dock.h"
#endif
#ifdef DEBUG_METHODS_ENABLED
diff --git a/modules/mono/editor/editor_internal_calls.cpp b/modules/mono/editor/editor_internal_calls.cpp
index 48a3259a90..be6aa35aa0 100644
--- a/modules/mono/editor/editor_internal_calls.cpp
+++ b/modules/mono/editor/editor_internal_calls.cpp
@@ -37,6 +37,7 @@
#include "core/os/os.h"
#include "core/version.h"
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "editor/plugins/script_editor_plugin.h"
#include "editor/script_editor_debugger.h"
#include "main/main.h"
diff --git a/modules/visual_script/visual_script_editor.cpp b/modules/visual_script/visual_script_editor.cpp
index 13b645732e..5b04404be7 100644
--- a/modules/visual_script/visual_script_editor.cpp
+++ b/modules/visual_script/visual_script_editor.cpp
@@ -37,6 +37,7 @@
#include "core/variant.h"
#include "editor/editor_node.h"
#include "editor/editor_resource_preview.h"
+#include "editor/editor_scale.h"
#include "scene/main/viewport.h"
#include "visual_script_expression.h"
#include "visual_script_flow_control.h"
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 4194e129ef..0645efccd7 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -38,6 +38,7 @@
#include "core/project_settings.h"
#include "core/version.h"
#include "editor/editor_export.h"
+#include "editor/editor_log.h"
#include "editor/editor_node.h"
#include "editor/editor_settings.h"
#include "platform/android/logo.gen.h"
diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp
index ccc658b0aa..92e740889d 100644
--- a/scene/gui/control.cpp
+++ b/scene/gui/control.cpp
@@ -2286,7 +2286,7 @@ void Control::set_theme(const Ref<Theme> &p_theme) {
}
if (data.theme.is_valid()) {
- data.theme->connect("changed", this, "_theme_changed");
+ data.theme->connect("changed", this, "_theme_changed", varray(), CONNECT_DEFERRED);
}
}
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index b6e647d1af..cc2d5dd6ea 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -35,6 +35,7 @@
#ifdef TOOLS_ENABLED
#include "editor/editor_node.h"
+#include "editor/editor_scale.h"
#include "scene/main/viewport.h" // Only used to check for more modals when dimming the editor.
#endif
diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp
index 9bcacd6ee3..2c4c7bdebe 100644
--- a/scene/gui/text_edit.cpp
+++ b/scene/gui/text_edit.cpp
@@ -1946,6 +1946,7 @@ void TextEdit::indent_right() {
// Ignore if the cursor is not past the first column.
if (is_selection_active() && get_selection_to_column() == 0) {
+ selection_offset = 0;
end_line--;
}