From 34865818c26d32783b2c1906070554bb3c2547cc Mon Sep 17 00:00:00 2001 From: Dimitris Panokostas Date: Sun, 21 Jan 2018 12:36:15 +0100 Subject: [PATCH] Fixed gui requesters not getting drawn until an event was triggered --- src/osdep/gui/CreateFilesysHardfile.cpp | 4 ++++ src/osdep/gui/EditFilesysHardfile.cpp | 4 ++++ src/osdep/gui/EditFilesysVirtual.cpp | 6 ++++-- src/osdep/gui/InGameMessage.cpp | 4 ++++ src/osdep/gui/SelectFile.cpp | 4 ++++ src/osdep/gui/SelectFolder.cpp | 5 +++++ src/osdep/gui/main_window.cpp | 4 ++++ 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/osdep/gui/CreateFilesysHardfile.cpp b/src/osdep/gui/CreateFilesysHardfile.cpp index f58db3c3..bf73bdcb 100644 --- a/src/osdep/gui/CreateFilesysHardfile.cpp +++ b/src/osdep/gui/CreateFilesysHardfile.cpp @@ -365,6 +365,10 @@ bool CreateFilesysHardfile() txtBootPri->setText("0"); txtSize->setText("100"); + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + CreateFilesysHardfileLoop(); ExitCreateFilesysHardfile(); diff --git a/src/osdep/gui/EditFilesysHardfile.cpp b/src/osdep/gui/EditFilesysHardfile.cpp index 810c7948..943d28a4 100644 --- a/src/osdep/gui/EditFilesysHardfile.cpp +++ b/src/osdep/gui/EditFilesysHardfile.cpp @@ -581,6 +581,10 @@ bool EditFilesysHardfile(const int unit_no) cboUnit->setSelected(0); } + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + EditFilesysHardfileLoop(); if (dialogResult) diff --git a/src/osdep/gui/EditFilesysVirtual.cpp b/src/osdep/gui/EditFilesysVirtual.cpp index a9611b1a..cd68b059 100644 --- a/src/osdep/gui/EditFilesysVirtual.cpp +++ b/src/osdep/gui/EditFilesysVirtual.cpp @@ -35,8 +35,6 @@ #define DIALOG_WIDTH 520 #define DIALOG_HEIGHT 202 -extern struct host_input_button host_input_buttons[MAX_INPUT_DEVICES]; - extern string volName; static bool dialogResult = false; @@ -388,6 +386,10 @@ bool EditFilesysVirtual(const int unit_no) txtBootPri->setText("0"); } + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + EditFilesysVirtualLoop(); if (dialogResult) diff --git a/src/osdep/gui/InGameMessage.cpp b/src/osdep/gui/InGameMessage.cpp index f2ecdfe3..f9b4828b 100644 --- a/src/osdep/gui/InGameMessage.cpp +++ b/src/osdep/gui/InGameMessage.cpp @@ -242,6 +242,10 @@ void InGameMessage(const char* msg) if (GUIjoy == nullptr) GUIjoy = SDL_JoystickOpen(0); + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + while (!msg_done) { // Poll input diff --git a/src/osdep/gui/SelectFile.cpp b/src/osdep/gui/SelectFile.cpp index 005ddf26..a26e2afa 100644 --- a/src/osdep/gui/SelectFile.cpp +++ b/src/osdep/gui/SelectFile.cpp @@ -474,6 +474,10 @@ bool SelectFile(const char* title, char* value, const char* filter[], const bool checkfoldername(workingDir); checkfilename(value); + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + SelectFileLoop(); #ifdef FILE_SELECT_KEEP_POSITION wndSelectFile->releaseModalFocus(); diff --git a/src/osdep/gui/SelectFolder.cpp b/src/osdep/gui/SelectFolder.cpp index 104728ac..6e0efc84 100644 --- a/src/osdep/gui/SelectFolder.cpp +++ b/src/osdep/gui/SelectFolder.cpp @@ -348,6 +348,11 @@ bool SelectFolder(const char* title, char* value) dialogFinished = false; InitSelectFolder(title); checkfoldername(value); + + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + SelectFolderLoop(); ExitSelectFolder(); if (dialogResult) diff --git a/src/osdep/gui/main_window.cpp b/src/osdep/gui/main_window.cpp index c2ad599a..304667b5 100644 --- a/src/osdep/gui/main_window.cpp +++ b/src/osdep/gui/main_window.cpp @@ -573,6 +573,10 @@ namespace sdl if (SDL_NumJoysticks() > 0) GUIjoy = SDL_JoystickOpen(0); + // Prepare the screen once + uae_gui->logic(); + uae_gui->draw(); + //------------------------------------------------- // The main loop //-------------------------------------------------