Fix file list in FileDialog not updating on first run

This commit is contained in:
Rindbee 2022-09-06 08:54:34 +08:00
parent 86dd3f312c
commit 88b72c3de4
2 changed files with 8 additions and 18 deletions

View file

@ -145,6 +145,8 @@ void EditorFileDialog::_notification(int p_what) {
if (!is_visible()) { if (!is_visible()) {
set_process_shortcut_input(false); set_process_shortcut_input(false);
} }
invalidate(); // For consistency with the standard FileDialog.
} break; } break;
case NOTIFICATION_WM_WINDOW_FOCUS_IN: { case NOTIFICATION_WM_WINDOW_FOCUS_IN: {
@ -304,10 +306,6 @@ void EditorFileDialog::_post_popup() {
} }
set_current_dir(current); set_current_dir(current);
if (invalidated) {
update_file_list();
invalidated = false;
}
if (mode == FILE_MODE_SAVE_FILE) { if (mode == FILE_MODE_SAVE_FILE) {
file->grab_focus(); file->grab_focus();
} else { } else {
@ -320,20 +318,14 @@ void EditorFileDialog::_post_popup() {
file_box->set_visible(true); file_box->set_visible(true);
} }
if (is_visible() && !get_current_file().is_empty()) { if (!get_current_file().is_empty()) {
_request_single_thumbnail(get_current_dir().path_join(get_current_file())); _request_single_thumbnail(get_current_dir().path_join(get_current_file()));
} }
if (is_visible()) {
_update_recent();
local_history.clear(); local_history.clear();
local_history_pos = -1; local_history_pos = -1;
_push_history(); _push_history();
_update_favorites();
}
set_process_shortcut_input(true); set_process_shortcut_input(true);
} }

View file

@ -87,6 +87,8 @@ void FileDialog::_notification(int p_what) {
if (!is_visible()) { if (!is_visible()) {
set_process_shortcut_input(false); set_process_shortcut_input(false);
} }
invalidate(); // Put it here to preview in the editor.
} break; } break;
case NOTIFICATION_THEME_CHANGED: { case NOTIFICATION_THEME_CHANGED: {
@ -223,10 +225,6 @@ void FileDialog::_save_confirm_pressed() {
void FileDialog::_post_popup() { void FileDialog::_post_popup() {
ConfirmationDialog::_post_popup(); ConfirmationDialog::_post_popup();
if (invalidated) {
update_file_list();
invalidated = false;
}
if (mode == FILE_MODE_SAVE_FILE) { if (mode == FILE_MODE_SAVE_FILE) {
file->grab_focus(); file->grab_focus();
} else { } else {