@@ -223,13 +223,16 @@ QuickOpenResultContainer::QuickOpenResultContainer() {
223223}
224224
225225QuickOpenResultContainer::~QuickOpenResultContainer () {
226- for (QuickOpenResultItem *E : result_items) {
227- memdelete (E);
226+ if (never_opened) {
227+ for (QuickOpenResultItem *E : result_items) {
228+ memdelete (E);
229+ }
228230 }
229231}
230232
231233void QuickOpenResultContainer::init (const Vector<StringName> &p_base_types) {
232234 base_types = p_base_types;
235+ never_opened = false ;
233236
234237 const int display_mode_behavior = EDITOR_GET (" filesystem/quick_open_dialog/default_display_mode" );
235238 const bool adaptive_display_mode = (display_mode_behavior == 0 );
@@ -574,13 +577,9 @@ void QuickOpenResultContainer::_toggle_display_mode() {
574577void QuickOpenResultContainer::_set_display_mode (QuickOpenDisplayMode p_display_mode) {
575578 content_display_mode = p_display_mode;
576579
577- const bool first_time = !list->is_visible () && !grid->is_visible ();
578-
579- if (!first_time) {
580- const bool show_list = (content_display_mode == QuickOpenDisplayMode::LIST);
581- if ((show_list && list->is_visible ()) || (!show_list && grid->is_visible ())) {
582- return ;
583- }
580+ const bool show_list = (content_display_mode == QuickOpenDisplayMode::LIST);
581+ if ((show_list && list->is_visible ()) || (!show_list && grid->is_visible ())) {
582+ return ;
584583 }
585584
586585 hide ();
@@ -596,6 +595,8 @@ void QuickOpenResultContainer::_set_display_mode(QuickOpenDisplayMode p_display_
596595 next_root = Object::cast_to<CanvasItem>(grid);
597596 }
598597
598+ const bool first_time = !list->is_visible () && !grid->is_visible ();
599+
599600 prev_root->hide ();
600601 for (QuickOpenResultItem *item : result_items) {
601602 item->set_display_mode (content_display_mode);
0 commit comments