From: Stefan Csomor Date: Wed, 29 Jan 2003 15:06:54 +0000 (+0000) Subject: carbon modal state X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2726cac5959dc1cf86be0f483d08f8ec9b68b4d8 carbon modal state git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19013 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/mac/carbon/dialog.cpp b/src/mac/carbon/dialog.cpp index 959fe01dfd..1ef72057f8 100644 --- a/src/mac/carbon/dialog.cpp +++ b/src/mac/carbon/dialog.cpp @@ -124,8 +124,6 @@ bool wxDialog::IsModalShowing() const return wxModalDialogs.Find((wxDialog *)this) != NULL; // const_cast } -extern bool s_macIsInModalLoop ; - bool wxDialog::Show(bool show) { if ( !wxDialogBase::Show(show) ) @@ -157,6 +155,10 @@ bool wxDialog::Show(bool show) return TRUE; } +#if !TARGET_CARBON +extern bool s_macIsInModalLoop ; +#endif + void wxDialog::DoShowModal() { wxCHECK_RET( !IsModalShowing(), _T("DoShowModal() called twice") ); @@ -175,22 +177,26 @@ void wxDialog::DoShowModal() { winFocus = wxTheApp->GetTopWindow(); } +#if TARGET_CARBON + BeginAppModalStateForWindow( (WindowRef) MacGetWindowRef()) ; +#else // TODO : test whether parent gets disabled - bool formerModal = s_macIsInModalLoop ; s_macIsInModalLoop = true ; - +#endif while ( IsModalShowing() ) { - while ( !wxTheApp->Pending() && wxTheApp->ProcessIdle() ) - { - } wxTheApp->MacDoOneEvent() ; + // calls process idle itself } +#if TARGET_CARBON + EndAppModalStateForWindow( (WindowRef) MacGetWindowRef() ) ; +#else + // TODO probably reenable the parent window if any s_macIsInModalLoop = formerModal ; +#endif - // TODO probably reenable the parent window if any // and restore focus if ( winFocus ) diff --git a/src/mac/dialog.cpp b/src/mac/dialog.cpp index 959fe01dfd..1ef72057f8 100644 --- a/src/mac/dialog.cpp +++ b/src/mac/dialog.cpp @@ -124,8 +124,6 @@ bool wxDialog::IsModalShowing() const return wxModalDialogs.Find((wxDialog *)this) != NULL; // const_cast } -extern bool s_macIsInModalLoop ; - bool wxDialog::Show(bool show) { if ( !wxDialogBase::Show(show) ) @@ -157,6 +155,10 @@ bool wxDialog::Show(bool show) return TRUE; } +#if !TARGET_CARBON +extern bool s_macIsInModalLoop ; +#endif + void wxDialog::DoShowModal() { wxCHECK_RET( !IsModalShowing(), _T("DoShowModal() called twice") ); @@ -175,22 +177,26 @@ void wxDialog::DoShowModal() { winFocus = wxTheApp->GetTopWindow(); } +#if TARGET_CARBON + BeginAppModalStateForWindow( (WindowRef) MacGetWindowRef()) ; +#else // TODO : test whether parent gets disabled - bool formerModal = s_macIsInModalLoop ; s_macIsInModalLoop = true ; - +#endif while ( IsModalShowing() ) { - while ( !wxTheApp->Pending() && wxTheApp->ProcessIdle() ) - { - } wxTheApp->MacDoOneEvent() ; + // calls process idle itself } +#if TARGET_CARBON + EndAppModalStateForWindow( (WindowRef) MacGetWindowRef() ) ; +#else + // TODO probably reenable the parent window if any s_macIsInModalLoop = formerModal ; +#endif - // TODO probably reenable the parent window if any // and restore focus if ( winFocus )