diff --git a/include/applicat.cpp b/include/applicat.cpp index f8c3c9d53..b6187f1f9 100755 --- a/include/applicat.cpp +++ b/include/applicat.cpp @@ -209,10 +209,13 @@ HIDDEN void create_backdrop(void) class TBanner : public TWindow { + bool _updated; + protected: virtual void handler(WINDOW win, EVENT* ep); public: + bool updated() const { return _updated;} TBanner(); virtual ~TBanner(); }; @@ -222,7 +225,7 @@ TBanner::TBanner() create(-1, 1, 76, 4, "BANNER", WSF_NONE, W_PLAIN); hide_brush(); open(); - do_events(); + _updated = false; } TBanner::~TBanner() @@ -235,6 +238,7 @@ void TBanner::handler(WINDOW win, EVENT* ep) { if (ep->type == E_UPDATE) { + _updated = true; const int BIGY = 3*CHARY/2; RCT r; xvt_vobj_get_client_rect(win, &r); @@ -329,7 +333,7 @@ long TApplication::task_eh(WINDOW win, EVENT *ep) // Crea il banner iniziale create_backdrop(); - do_events(); + do_events(); // strateggicca non scancellare } break; case E_UPDATE: @@ -358,6 +362,12 @@ long TApplication::handler(WINDOW win, EVENT* ep) case E_CREATE: { TBanner banner; + + while (!banner.updated()) + { + xvt_sys_sleep(10); + do_events(); + } _create_ok = create(); } if (_create_ok) @@ -1045,7 +1055,7 @@ void TApplication::open_files(int logicnum, ...) bool TSkeleton_application::create() { dispatch_e_menu(BAR_ITEM(1)); - return TRUE; + return TApplication::create(); } bool TSkeleton_application::menu(MENU_TAG tag)