diff --git a/tools/editor/project_manager.cpp b/tools/editor/project_manager.cpp index 28d9738fee..f885fbba07 100644 --- a/tools/editor/project_manager.cpp +++ b/tools/editor/project_manager.cpp @@ -518,23 +518,23 @@ void ProjectManager::_panel_draw(Node *p_hb) { void ProjectManager::_update_project_buttons() { - String single_selected = ""; - if (selected_list.size() == 1) { - single_selected = selected_list.front()->key(); - } - - single_selected_main = ""; for(int i=0;iget_child_count();i++) { + CanvasItem *item = scroll_childs->get_child(i)->cast_to(); item->update(); - - if (single_selected!="" && single_selected == item->get_meta("name")) - single_selected_main = item->get_meta("main_scene"); + } + + bool has_runnable_scene = false; + for (Map::Element *E=selected_list.front(); E; E=E->next()) { + const String &selected_main = E->get(); + if (selected_main == "") continue; + has_runnable_scene = true; + break; } erase_btn->set_disabled(selected_list.size()<1); open_btn->set_disabled(selected_list.size()<1); - run_btn->set_disabled(selected_list.size()<1 || (selected_list.size()==1 && single_selected_main=="")); + run_btn->set_disabled(!has_runnable_scene); } void ProjectManager::_panel_input(const InputEvent& p_ev,Node *p_hb) { @@ -1072,7 +1072,6 @@ void ProjectManager::_erase_project_confirm() { EditorSettings::get_singleton()->save(); selected_list.clear(); last_clicked = ""; - single_selected_main=""; _load_recent_projects(); } diff --git a/tools/editor/project_manager.h b/tools/editor/project_manager.h index 50bd7d94c8..da57033905 100644 --- a/tools/editor/project_manager.h +++ b/tools/editor/project_manager.h @@ -60,7 +60,6 @@ class ProjectManager : public Control { VBoxContainer *scroll_childs; Map selected_list; // name -> main_scene String last_clicked; - String single_selected_main; bool importing; HBoxContainer *projects_hb; @@ -69,8 +68,6 @@ class ProjectManager : public Control { Control *gui_base; - void _item_doubleclicked(); - void _scan_projects();