Merge pull request #21871 from DualMatrix/recent_select

Fixed favorites and recent nodes selecting wrong node
This commit is contained in:
Rémi Verschelde 2018-09-10 22:52:08 +02:00 committed by GitHub
commit fe4c893c88
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -244,17 +244,17 @@ void CreateDialog::add_type(const String &p_type, HashMap<String, TreeItem *> &p
bool is_search_subsequence = search_box->get_text().is_subsequence_ofi(p_type); bool is_search_subsequence = search_box->get_text().is_subsequence_ofi(p_type);
String to_select_type = *to_select ? (*to_select)->get_text(0) : ""; String to_select_type = *to_select ? (*to_select)->get_text(0) : "";
to_select_type = to_select_type.split(" ")[0]; to_select_type = to_select_type.split(" ")[0];
bool current_item_is_preffered; bool current_item_is_preferred;
if (cpp_type) { if (cpp_type) {
current_item_is_preffered = ClassDB::is_parent_class(p_type, preferred_search_result_type) && !ClassDB::is_parent_class(to_select_type, preferred_search_result_type); current_item_is_preferred = ClassDB::is_parent_class(p_type, preferred_search_result_type) && !ClassDB::is_parent_class(to_select_type, preferred_search_result_type) && search_box->get_text() != to_select_type;
} else { } else {
current_item_is_preffered = ed.script_class_is_parent(p_type, preferred_search_result_type) && !ed.script_class_is_parent(to_select_type, preferred_search_result_type); current_item_is_preferred = ed.script_class_is_parent(p_type, preferred_search_result_type) && !ed.script_class_is_parent(to_select_type, preferred_search_result_type) && search_box->get_text() != to_select_type;
} }
if (*to_select && p_type.length() < (*to_select)->get_text(0).length()) { if (*to_select && p_type.length() < (*to_select)->get_text(0).length()) {
current_item_is_preffered = true; current_item_is_preferred = true;
} }
if (((!*to_select || current_item_is_preffered) && is_search_subsequence) || search_box->get_text() == p_type) { if (((!*to_select || current_item_is_preferred) && is_search_subsequence) || search_box->get_text() == p_type) {
*to_select = item; *to_select = item;
} }
} }