diff --git a/xvaga/xvaga.cpp b/xvaga/xvaga.cpp index 0f7e49fde..330b6dfaa 100755 --- a/xvaga/xvaga.cpp +++ b/xvaga/xvaga.cpp @@ -7,6 +7,7 @@ #include "wx/fontdlg.h" #include "wx/image.h" #include +#include #include "wx/fs_zip.h" #include "wx/html/helpctrl.h" @@ -3657,6 +3658,31 @@ BOOLEAN xvt_sys_get_user_name(char* name, int maxlen) return len > 0; } +/////////////////////////////////////////////////////////// +// Process processing +/////////////////////////////////////////////////////////// +class TIconizeTaskThread : public wxThread +{ +protected: + virtual ExitCode Entry(); +public: + TIconizeTaskThread(); +}; + +wxThread::ExitCode TIconizeTaskThread::Entry() +{ + Sleep(1000); + ((wxFrame*)_task_win)->Iconize(); + return 0; +} + +TIconizeTaskThread::TIconizeTaskThread() +{ + Create(); + SetPriority(WXTHREAD_MIN_PRIORITY); + Run(); +} + long xvt_sys_execute(const char* cmdline, BOOLEAN sync, BOOLEAN iconizetask) { long exitcode = 0; @@ -3666,15 +3692,19 @@ long xvt_sys_execute(const char* cmdline, BOOLEAN sync, BOOLEAN iconizetask) if (iconizetask) { wxEnableTopLevelWindows(FALSE); - ((wxFrame*)_task_win)->Iconize(); - } - exitcode = wxExecute(cmdline, wxEXEC_SYNC); - if (iconizetask) - { + + // ((wxFrame*)_task_win)->Iconize(); + TIconizeTaskThread* it; + it = new TIconizeTaskThread(); + + exitcode = wxExecute(cmdline, wxEXEC_SYNC); + ((wxFrame*)_task_win)->Restore(); wxEnableTopLevelWindows(TRUE); _task_win->Raise(); } + else + exitcode = wxExecute(cmdline, wxEXEC_SYNC); } else exitcode = wxExecute(cmdline, wxEXEC_ASYNC);