Browse Source

Merge pull request #57581 from groud/remove_get_fowus_owner

Rémi Verschelde 3 years ago
parent
commit
7f93eb34cf

+ 0 - 6
doc/classes/Control.xml

@@ -380,12 +380,6 @@
 				Returns the focus neighbor for the specified [enum Side]. A getter method for [member focus_neighbor_bottom], [member focus_neighbor_left], [member focus_neighbor_right] and [member focus_neighbor_top].
 				Returns the focus neighbor for the specified [enum Side]. A getter method for [member focus_neighbor_bottom], [member focus_neighbor_left], [member focus_neighbor_right] and [member focus_neighbor_top].
 			</description>
 			</description>
 		</method>
 		</method>
-		<method name="get_focus_owner" qualifiers="const">
-			<return type="Control" />
-			<description>
-				Returns the control that has the keyboard focus or [code]null[/code] if none.
-			</description>
-		</method>
 		<method name="get_global_rect" qualifiers="const">
 		<method name="get_global_rect" qualifiers="const">
 			<return type="Rect2" />
 			<return type="Rect2" />
 			<description>
 			<description>

+ 1 - 1
editor/animation_track_editor.cpp

@@ -3481,7 +3481,7 @@ void AnimationTrackEditor::_track_remove_request(int p_track) {
 
 
 void AnimationTrackEditor::_track_grab_focus(int p_track) {
 void AnimationTrackEditor::_track_grab_focus(int p_track) {
 	// Don't steal focus if not working with the track editor.
 	// Don't steal focus if not working with the track editor.
-	if (Object::cast_to<AnimationTrackEdit>(get_focus_owner())) {
+	if (Object::cast_to<AnimationTrackEdit>(get_viewport()->gui_get_focus_owner())) {
 		track_edits[p_track]->grab_focus();
 		track_edits[p_track]->grab_focus();
 	}
 	}
 }
 }

+ 2 - 2
editor/code_editor.cpp

@@ -122,7 +122,7 @@ void FindReplaceBar::unhandled_input(const Ref<InputEvent> &p_event) {
 		return;
 		return;
 	}
 	}
 
 
-	Control *focus_owner = get_focus_owner();
+	Control *focus_owner = get_viewport()->gui_get_focus_owner();
 	if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
 	if (text_editor->has_focus() || (focus_owner && vbc_lineedit->is_ancestor_of(focus_owner))) {
 		bool accepted = true;
 		bool accepted = true;
 
 
@@ -724,7 +724,7 @@ void CodeTextEditor::input(const Ref<InputEvent> &event) {
 	}
 	}
 
 
 	if (!text_editor->has_focus()) {
 	if (!text_editor->has_focus()) {
-		if ((find_replace_bar != nullptr && find_replace_bar->is_visible()) && (find_replace_bar->has_focus() || find_replace_bar->is_ancestor_of(get_focus_owner()))) {
+		if ((find_replace_bar != nullptr && find_replace_bar->is_visible()) && (find_replace_bar->has_focus() || find_replace_bar->is_ancestor_of(get_viewport()->gui_get_focus_owner()))) {
 			if (ED_IS_SHORTCUT("script_text_editor/find_next", key_event)) {
 			if (ED_IS_SHORTCUT("script_text_editor/find_next", key_event)) {
 				find_replace_bar->search_next();
 				find_replace_bar->search_next();
 				accept_event();
 				accept_event();

+ 1 - 1
editor/editor_help.cpp

@@ -2128,7 +2128,7 @@ void FindBar::unhandled_input(const Ref<InputEvent> &p_event) {
 
 
 	Ref<InputEventKey> k = p_event;
 	Ref<InputEventKey> k = p_event;
 	if (k.is_valid()) {
 	if (k.is_valid()) {
-		if (k->is_pressed() && (rich_text_label->has_focus() || is_ancestor_of(get_focus_owner()))) {
+		if (k->is_pressed() && (rich_text_label->has_focus() || is_ancestor_of(get_viewport()->gui_get_focus_owner()))) {
 			bool accepted = true;
 			bool accepted = true;
 
 
 			switch (k->get_keycode()) {
 			switch (k->get_keycode()) {

+ 1 - 1
editor/editor_inspector.cpp

@@ -2299,7 +2299,7 @@ void EditorInspector::update_tree() {
 	if (property_focusable != -1) {
 	if (property_focusable != -1) {
 		//check focusable is really focusable
 		//check focusable is really focusable
 		bool restore_focus = false;
 		bool restore_focus = false;
-		Control *focused = get_focus_owner();
+		Control *focused = get_viewport() ? get_viewport()->gui_get_focus_owner() : nullptr;
 		if (focused) {
 		if (focused) {
 			Node *parent = focused->get_parent();
 			Node *parent = focused->get_parent();
 			while (parent) {
 			while (parent) {

+ 1 - 1
editor/plugins/canvas_item_editor_plugin.cpp

@@ -2507,7 +2507,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) {
 	_update_cursor();
 	_update_cursor();
 
 
 	// Grab focus
 	// Grab focus
-	if (!viewport->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field())) {
+	if (!viewport->has_focus() && (!get_viewport()->gui_get_focus_owner() || !get_viewport()->gui_get_focus_owner()->is_text_field())) {
 		viewport->call_deferred(SNAME("grab_focus"));
 		viewport->call_deferred(SNAME("grab_focus"));
 	}
 	}
 }
 }

+ 1 - 1
editor/plugins/node_3d_editor_plugin.cpp

@@ -1203,7 +1203,7 @@ Transform3D Node3DEditorViewport::_compute_transform(TransformMode p_mode, const
 }
 }
 
 
 void Node3DEditorViewport::_surface_mouse_enter() {
 void Node3DEditorViewport::_surface_mouse_enter() {
-	if (!surface->has_focus() && (!get_focus_owner() || !get_focus_owner()->is_text_field())) {
+	if (!surface->has_focus() && (!get_viewport()->gui_get_focus_owner() || !get_viewport()->gui_get_focus_owner()->is_text_field())) {
 		surface->grab_focus();
 		surface->grab_focus();
 	}
 	}
 }
 }

+ 1 - 1
editor/plugins/theme_editor_plugin.cpp

@@ -2226,7 +2226,7 @@ void ThemeTypeEditor::_update_type_list() {
 	}
 	}
 	updating = true;
 	updating = true;
 
 
-	Control *focused = get_focus_owner();
+	Control *focused = get_viewport()->gui_get_focus_owner();
 	if (focused) {
 	if (focused) {
 		if (focusables.has(focused)) {
 		if (focusables.has(focused)) {
 			// If focus is currently on one of the internal property editors, don't update.
 			// If focus is currently on one of the internal property editors, don't update.

+ 2 - 2
editor/rename_dialog.cpp

@@ -337,7 +337,7 @@ void RenameDialog::_bind_methods() {
 }
 }
 
 
 void RenameDialog::_update_substitute() {
 void RenameDialog::_update_substitute() {
-	LineEdit *focus_owner_line_edit = Object::cast_to<LineEdit>(scene_tree_editor->get_focus_owner());
+	LineEdit *focus_owner_line_edit = Object::cast_to<LineEdit>(scene_tree_editor->get_viewport()->gui_get_focus_owner());
 	bool is_main_field = _is_main_field(focus_owner_line_edit);
 	bool is_main_field = _is_main_field(focus_owner_line_edit);
 
 
 	but_insert_name->set_disabled(!is_main_field);
 	but_insert_name->set_disabled(!is_main_field);
@@ -632,7 +632,7 @@ bool RenameDialog::_is_main_field(LineEdit *line_edit) {
 }
 }
 
 
 void RenameDialog::_insert_text(String text) {
 void RenameDialog::_insert_text(String text) {
-	LineEdit *focus_owner = Object::cast_to<LineEdit>(scene_tree_editor->get_focus_owner());
+	LineEdit *focus_owner = Object::cast_to<LineEdit>(scene_tree_editor->get_viewport()->gui_get_focus_owner());
 
 
 	if (_is_main_field(focus_owner)) {
 	if (_is_main_field(focus_owner)) {
 		focus_owner->selection_delete();
 		focus_owner->selection_delete();

+ 1 - 1
editor/scene_tree_dock.cpp

@@ -78,7 +78,7 @@ void SceneTreeDock::input(const Ref<InputEvent> &p_event) {
 void SceneTreeDock::unhandled_key_input(const Ref<InputEvent> &p_event) {
 void SceneTreeDock::unhandled_key_input(const Ref<InputEvent> &p_event) {
 	ERR_FAIL_COND(p_event.is_null());
 	ERR_FAIL_COND(p_event.is_null());
 
 
-	if (get_focus_owner() && get_focus_owner()->is_text_field()) {
+	if (get_viewport()->gui_get_focus_owner() && get_viewport()->gui_get_focus_owner()->is_text_field()) {
 		return;
 		return;
 	}
 	}
 
 

+ 1 - 1
scene/gui/base_button.cpp

@@ -403,7 +403,7 @@ bool BaseButton::_is_focus_owner_in_shorcut_context() const {
 	}
 	}
 
 
 	Node *ctx_node = get_shortcut_context();
 	Node *ctx_node = get_shortcut_context();
-	Control *vp_focus = get_focus_owner();
+	Control *vp_focus = get_viewport() ? get_viewport()->gui_get_focus_owner() : nullptr;
 
 
 	// If the context is valid and the viewport focus is valid, check if the context is the focus or is a parent of it.
 	// If the context is valid and the viewport focus is valid, check if the context is the focus or is a parent of it.
 	return ctx_node && vp_focus && (ctx_node == vp_focus || ctx_node->is_ancestor_of(vp_focus));
 	return ctx_node && vp_focus && (ctx_node == vp_focus || ctx_node->is_ancestor_of(vp_focus));

+ 0 - 6
scene/gui/control.cpp

@@ -2599,11 +2599,6 @@ Control::MouseFilter Control::get_mouse_filter() const {
 	return data.mouse_filter;
 	return data.mouse_filter;
 }
 }
 
 
-Control *Control::get_focus_owner() const {
-	ERR_FAIL_COND_V(!is_inside_tree(), nullptr);
-	return get_viewport()->gui_get_focus_owner();
-}
-
 void Control::warp_mouse(const Point2 &p_to_pos) {
 void Control::warp_mouse(const Point2 &p_to_pos) {
 	ERR_FAIL_COND(!is_inside_tree());
 	ERR_FAIL_COND(!is_inside_tree());
 	get_viewport()->warp_mouse(get_global_transform().xform(p_to_pos));
 	get_viewport()->warp_mouse(get_global_transform().xform(p_to_pos));
@@ -2893,7 +2888,6 @@ void Control::_bind_methods() {
 	ClassDB::bind_method(D_METHOD("release_focus"), &Control::release_focus);
 	ClassDB::bind_method(D_METHOD("release_focus"), &Control::release_focus);
 	ClassDB::bind_method(D_METHOD("find_prev_valid_focus"), &Control::find_prev_valid_focus);
 	ClassDB::bind_method(D_METHOD("find_prev_valid_focus"), &Control::find_prev_valid_focus);
 	ClassDB::bind_method(D_METHOD("find_next_valid_focus"), &Control::find_next_valid_focus);
 	ClassDB::bind_method(D_METHOD("find_next_valid_focus"), &Control::find_next_valid_focus);
-	ClassDB::bind_method(D_METHOD("get_focus_owner"), &Control::get_focus_owner);
 
 
 	ClassDB::bind_method(D_METHOD("set_h_size_flags", "flags"), &Control::set_h_size_flags);
 	ClassDB::bind_method(D_METHOD("set_h_size_flags", "flags"), &Control::set_h_size_flags);
 	ClassDB::bind_method(D_METHOD("get_h_size_flags"), &Control::get_h_size_flags);
 	ClassDB::bind_method(D_METHOD("get_h_size_flags"), &Control::get_h_size_flags);

+ 0 - 2
scene/gui/control.h

@@ -462,8 +462,6 @@ public:
 	void set_focus_previous(const NodePath &p_prev);
 	void set_focus_previous(const NodePath &p_prev);
 	NodePath get_focus_previous() const;
 	NodePath get_focus_previous() const;
 
 
-	Control *get_focus_owner() const;
-
 	void set_mouse_filter(MouseFilter p_filter);
 	void set_mouse_filter(MouseFilter p_filter);
 	MouseFilter get_mouse_filter() const;
 	MouseFilter get_mouse_filter() const;