Skip to content

Commit 80b9f5b

Browse files
committed
Merge pull request #91804 from RedMser/wrong-size-no-more
Fix Control resizing wrongly after "change type" in editor
2 parents 86b72d9 + 5e79e02 commit 80b9f5b

8 files changed

+23
-179
lines changed

core/core_string_names.cpp

+2-5
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,8 @@ CoreStringNames::CoreStringNames() :
4242
_iter_get(StaticCString::create("_iter_get")),
4343
get_rid(StaticCString::create("get_rid")),
4444
_to_string(StaticCString::create("_to_string")),
45-
#ifdef TOOLS_ENABLED
46-
_sections_unfolded(StaticCString::create("_sections_unfolded")),
47-
#endif
4845
_custom_features(StaticCString::create("_custom_features")),
46+
4947
x(StaticCString::create("x")),
5048
y(StaticCString::create("y")),
5149
z(StaticCString::create("z")),
@@ -68,11 +66,10 @@ CoreStringNames::CoreStringNames() :
6866
g8(StaticCString::create("g8")),
6967
b8(StaticCString::create("b8")),
7068
a8(StaticCString::create("a8")),
69+
7170
call(StaticCString::create("call")),
7271
call_deferred(StaticCString::create("call_deferred")),
7372
bind(StaticCString::create("bind")),
74-
unbind(StaticCString::create("unbind")),
75-
emit(StaticCString::create("emit")),
7673
notification(StaticCString::create("notification")),
7774
property_list_changed(StaticCString::create("property_list_changed")) {
7875
}

core/core_string_names.h

-5
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@ class CoreStringNames {
5959
StringName _iter_get;
6060
StringName get_rid;
6161
StringName _to_string;
62-
#ifdef TOOLS_ENABLED
63-
StringName _sections_unfolded;
64-
#endif
6562
StringName _custom_features;
6663

6764
StringName x;
@@ -90,8 +87,6 @@ class CoreStringNames {
9087
StringName call;
9188
StringName call_deferred;
9289
StringName bind;
93-
StringName unbind;
94-
StringName emit;
9590
StringName notification;
9691
StringName property_list_changed;
9792
};

editor/scene_tree_dock.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -2907,6 +2907,13 @@ void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_pro
29072907
}
29082908
}
29092909

2910+
// HACK: Remember size of anchored control.
2911+
Control *old_control = Object::cast_to<Control>(oldnode);
2912+
Size2 size;
2913+
if (old_control) {
2914+
size = old_control->get_size();
2915+
}
2916+
29102917
String newname = oldnode->get_name();
29112918

29122919
List<Node *> to_erase;
@@ -2917,6 +2924,12 @@ void SceneTreeDock::_replace_node(Node *p_node, Node *p_by_node, bool p_keep_pro
29172924
}
29182925
oldnode->replace_by(newnode, true);
29192926

2927+
// Re-apply size of anchored control.
2928+
Control *new_control = Object::cast_to<Control>(newnode);
2929+
if (old_control && new_control) {
2930+
new_control->set_size(size);
2931+
}
2932+
29202933
//small hack to make collisionshapes and other kind of nodes to work
29212934
for (int i = 0; i < newnode->get_child_count(); i++) {
29222935
Node *c = newnode->get_child(i);

scene/3d/node_3d.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ void Node3D::_notification(int p_what) {
192192
ERR_FAIL_NULL(data.viewport);
193193

194194
if (get_script_instance()) {
195-
get_script_instance()->call(SceneStringName(_enter_world));
195+
get_script_instance()->call(SNAME("_enter_world"));
196196
}
197197

198198
#ifdef TOOLS_ENABLED
@@ -210,7 +210,7 @@ void Node3D::_notification(int p_what) {
210210
#endif
211211

212212
if (get_script_instance()) {
213-
get_script_instance()->call(SceneStringName(_exit_world));
213+
get_script_instance()->call(SNAME("_exit_world"));
214214
}
215215

216216
data.viewport = nullptr;
@@ -582,7 +582,7 @@ void Node3D::set_subgizmo_selection(Ref<Node3DGizmo> p_gizmo, int p_id, Transfor
582582
}
583583

584584
if (is_part_of_edited_scene()) {
585-
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringName(_spatial_editor_group), SceneStringName(_set_subgizmo_selection), this, p_gizmo, p_id, p_transform);
585+
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringName(_spatial_editor_group), SNAME("_set_subgizmo_selection"), this, p_gizmo, p_id, p_transform);
586586
}
587587
#endif
588588
}
@@ -599,7 +599,7 @@ void Node3D::clear_subgizmo_selection() {
599599
}
600600

601601
if (is_part_of_edited_scene()) {
602-
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringName(_spatial_editor_group), SceneStringName(_clear_subgizmo_selection), this);
602+
get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFERRED, SceneStringName(_spatial_editor_group), SNAME("_clear_subgizmo_selection"), this);
603603
}
604604
#endif
605605
}

scene/3d/visual_instance_3d.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -276,12 +276,12 @@ bool GeometryInstance3D::_set(const StringName &p_name, const Variant &p_value)
276276
return true;
277277
}
278278
#ifndef DISABLE_DEPRECATED
279-
if (p_name == SceneStringName(use_in_baked_light) && bool(p_value)) {
279+
if (p_name == SNAME("use_in_baked_light") && bool(p_value)) {
280280
set_gi_mode(GI_MODE_STATIC);
281281
return true;
282282
}
283283

284-
if (p_name == SceneStringName(use_dynamic_gi) && bool(p_value)) {
284+
if (p_name == SNAME("use_dynamic_gi") && bool(p_value)) {
285285
set_gi_mode(GI_MODE_DYNAMIC);
286286
return true;
287287
}

scene/main/node.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -1736,12 +1736,10 @@ Node *Node::get_node_or_null(const NodePath &p_path) const {
17361736
StringName name = p_path.get_name(i);
17371737
Node *next = nullptr;
17381738

1739-
if (name == SceneStringName(dot)) { // .
1740-
1739+
if (name == SNAME(".")) {
17411740
next = current;
17421741

1743-
} else if (name == SceneStringName(doubledot)) { // ..
1744-
1742+
} else if (name == SNAME("..")) {
17451743
if (current == nullptr || !current->data.parent) {
17461744
return nullptr;
17471745
}

scene/scene_string_names.cpp

-82
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,12 @@
3333
SceneStringNames *SceneStringNames::singleton = nullptr;
3434

3535
SceneStringNames::SceneStringNames() {
36-
_estimate_cost = StaticCString::create("_estimate_cost");
37-
_compute_cost = StaticCString::create("_compute_cost");
38-
3936
resized = StaticCString::create("resized");
40-
dot = StaticCString::create(".");
41-
doubledot = StaticCString::create("..");
4237
draw = StaticCString::create("draw");
43-
_draw = StaticCString::create("_draw");
4438
hidden = StaticCString::create("hidden");
4539
visibility_changed = StaticCString::create("visibility_changed");
4640
input_event = StaticCString::create("input_event");
4741
shader = StaticCString::create("shader");
48-
shader_unshaded = StaticCString::create("shader/unshaded");
49-
shading_mode = StaticCString::create("shader/shading_mode");
5042
tree_entered = StaticCString::create("tree_entered");
5143
tree_exiting = StaticCString::create("tree_exiting");
5244
tree_exited = StaticCString::create("tree_exited");
@@ -86,98 +78,33 @@ SceneStringNames::SceneStringNames() {
8678
area_shape_entered = StaticCString::create("area_shape_entered");
8779
area_shape_exited = StaticCString::create("area_shape_exited");
8880

89-
_body_inout = StaticCString::create("_body_inout");
90-
_area_inout = StaticCString::create("_area_inout");
91-
92-
idle = StaticCString::create("idle");
93-
iteration = StaticCString::create("iteration");
9481
update = StaticCString::create("update");
9582
updated = StaticCString::create("updated");
9683

97-
_physics_process = StaticCString::create("_physics_process");
98-
_process = StaticCString::create("_process");
99-
100-
_enter_tree = StaticCString::create("_enter_tree");
101-
_exit_tree = StaticCString::create("_exit_tree");
102-
_enter_world = StaticCString::create("_enter_world");
103-
_exit_world = StaticCString::create("_exit_world");
10484
_ready = StaticCString::create("_ready");
10585

106-
_update_scroll = StaticCString::create("_update_scroll");
107-
_update_xform = StaticCString::create("_update_xform");
108-
109-
_structured_text_parser = StaticCString::create("_structured_text_parser");
110-
111-
_proxgroup_add = StaticCString::create("_proxgroup_add");
112-
_proxgroup_remove = StaticCString::create("_proxgroup_remove");
113-
114-
grouped = StaticCString::create("grouped");
115-
ungrouped = StaticCString::create("ungrouped");
116-
11786
screen_entered = StaticCString::create("screen_entered");
11887
screen_exited = StaticCString::create("screen_exited");
11988

120-
viewport_entered = StaticCString::create("viewport_entered");
121-
viewport_exited = StaticCString::create("viewport_exited");
122-
123-
camera_entered = StaticCString::create("camera_entered");
124-
camera_exited = StaticCString::create("camera_exited");
125-
126-
_input = StaticCString::create("_input");
127-
_input_event = StaticCString::create("_input_event");
128-
12989
gui_input = StaticCString::create("gui_input");
130-
_gui_input = StaticCString::create("_gui_input");
131-
132-
_unhandled_input = StaticCString::create("_unhandled_input");
133-
_unhandled_key_input = StaticCString::create("_unhandled_key_input");
134-
135-
_shader_changed = StaticCString::create("_shader_changed");
13690

13791
_spatial_editor_group = StaticCString::create("_spatial_editor_group");
13892
_request_gizmo = StaticCString::create("_request_gizmo");
139-
_set_subgizmo_selection = StaticCString::create("_set_subgizmo_selection");
140-
_clear_subgizmo_selection = StaticCString::create("_clear_subgizmo_selection");
14193

14294
offset = StaticCString::create("offset");
143-
unit_offset = StaticCString::create("unit_offset");
14495
rotation_mode = StaticCString::create("rotation_mode");
14596
rotate = StaticCString::create("rotate");
14697
h_offset = StaticCString::create("h_offset");
14798
v_offset = StaticCString::create("v_offset");
14899

149-
_update_remote = StaticCString::create("_update_remote");
150-
_update_pairs = StaticCString::create("_update_pairs");
151-
152-
_get_minimum_size = StaticCString::create("_get_minimum_size");
153-
154100
area_entered = StaticCString::create("area_entered");
155101
area_exited = StaticCString::create("area_exited");
156102

157-
_has_point = StaticCString::create("_has_point");
158-
159103
line_separation = StaticCString::create("line_separation");
160104

161-
_get_drag_data = StaticCString::create("_get_drag_data");
162-
_drop_data = StaticCString::create("_drop_data");
163-
_can_drop_data = StaticCString::create("_can_drop_data");
164-
165-
baked_light_changed = StaticCString::create("baked_light_changed");
166-
_baked_light_changed = StaticCString::create("_baked_light_changed");
167-
168-
_mouse_enter = StaticCString::create("_mouse_enter");
169-
_mouse_exit = StaticCString::create("_mouse_exit");
170-
_mouse_shape_enter = StaticCString::create("_mouse_shape_enter");
171-
_mouse_shape_exit = StaticCString::create("_mouse_shape_exit");
172-
173-
_pressed = StaticCString::create("_pressed");
174-
_toggled = StaticCString::create("_toggled");
175-
176105
frame_changed = StaticCString::create("frame_changed");
177106
texture_changed = StaticCString::create("texture_changed");
178107

179-
playback_speed = StaticCString::create("playback/speed");
180-
playback_active = StaticCString::create("playback/active");
181108
autoplay = StaticCString::create("autoplay");
182109
blend_times = StaticCString::create("blend_times");
183110
speed = StaticCString::create("speed");
@@ -193,11 +120,7 @@ SceneStringNames::SceneStringNames() {
193120

194121
default_ = StaticCString::create("default");
195122

196-
_window_group = StaticCString::create("_window_group");
197-
_window_input = StaticCString::create("_window_input");
198123
window_input = StaticCString::create("window_input");
199-
_window_unhandled_input = StaticCString::create("_window_unhandled_input");
200-
_get_contents_minimum_size = StaticCString::create("_get_contents_minimum_size");
201124

202125
theme_changed = StaticCString::create("theme_changed");
203126
parameters_base_path = "parameters/";
@@ -206,9 +129,4 @@ SceneStringNames::SceneStringNames() {
206129
shader_overrides_group_active = StaticCString::create("_shader_overrides_group_active_");
207130

208131
pressed = StaticCString::create("pressed");
209-
210-
#ifndef DISABLE_DEPRECATED
211-
use_in_baked_light = StaticCString::create("use_in_baked_light");
212-
use_dynamic_gi = StaticCString::create("use_dynamic_gi");
213-
#endif
214132
}

0 commit comments

Comments
 (0)