explicitly raise modal dialogs in case a non modal window was selected to

activate the application when a modal dialog is displayed


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Gilles Depeyrot
2002-07-14 13:08:24 +00:00
parent 723c433f65
commit 2a29485779
2 changed files with 72 additions and 46 deletions

View File

@@ -107,31 +107,31 @@ pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long re
pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ; pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEODoc( (AppleEvent*) event , reply) ; return wxTheApp->MacHandleAEODoc( (AppleEvent*) event , reply) ;
} }
pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEOApp( (AppleEvent*) event , reply ) ; return wxTheApp->MacHandleAEOApp( (AppleEvent*) event , reply ) ;
} }
pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEPDoc( (AppleEvent*) event , reply ) ; return wxTheApp->MacHandleAEPDoc( (AppleEvent*) event , reply ) ;
} }
pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ; return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
} }
short wxApp::MacHandleAEODoc(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEODoc(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
SysBeep(40) ; SysBeep(40) ;
ProcessSerialNumber PSN ; ProcessSerialNumber PSN ;
@@ -141,17 +141,17 @@ short wxApp::MacHandleAEODoc(const WXEVENTREF event , WXEVENTREF reply)
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEPDoc(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEPDoc(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEOApp(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEOApp(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEQuit(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEQuit(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
wxWindow* win = GetTopWindow() ; wxWindow* win = GetTopWindow() ;
if ( win ) if ( win )
@@ -804,7 +804,7 @@ pascal void __wxterminate(void)
#endif /* WXMAKINGDLL && !__DARWIN__ */ #endif /* WXMAKINGDLL && !__DARWIN__ */
int WXDLLEXPORT wxEntryStart( int argc, char *argv[] ) int WXDLLEXPORT wxEntryStart( int WXUNUSED(argc), char *WXUNUSED(argv)[] )
{ {
return wxApp::Initialize(); return wxApp::Initialize();
} }
@@ -1296,25 +1296,38 @@ void wxApp::MacSuspend( bool convertClipboard )
node = node->Next(); node = node->Next();
} }
s_lastMouseDown = 0 ; s_lastMouseDown = 0 ;
if( convertClipboard ) if( convertClipboard )
{ {
MacConvertPrivateToPublicScrap() ; MacConvertPrivateToPublicScrap() ;
} }
::HideFloatingWindows() ; ::HideFloatingWindows() ;
} }
extern wxList wxModalDialogs;
void wxApp::MacResume( bool convertClipboard ) void wxApp::MacResume( bool convertClipboard )
{ {
s_lastMouseDown = 0 ; s_lastMouseDown = 0 ;
if( convertClipboard ) if( convertClipboard )
{ {
MacConvertPublicToPrivateScrap() ; MacConvertPublicToPrivateScrap() ;
} }
::ShowFloatingWindows() ;
// raise modal dialogs in case a non modal window was selected to activate the app
::ShowFloatingWindows() ; wxNode* node = wxModalDialogs.First();
while (node)
{
wxDialog* dialog = (wxDialog *) node->Data();
dialog->Raise();
node = node->Next();
}
} }
void wxApp::MacConvertPrivateToPublicScrap() void wxApp::MacConvertPrivateToPublicScrap()

View File

@@ -107,31 +107,31 @@ pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long re
pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ; pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) ;
pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleODoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEODoc( (AppleEvent*) event , reply) ; return wxTheApp->MacHandleAEODoc( (AppleEvent*) event , reply) ;
} }
pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleOApp( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEOApp( (AppleEvent*) event , reply ) ; return wxTheApp->MacHandleAEOApp( (AppleEvent*) event , reply ) ;
} }
pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandlePDoc( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEPDoc( (AppleEvent*) event , reply ) ; return wxTheApp->MacHandleAEPDoc( (AppleEvent*) event , reply ) ;
} }
pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long refcon ) pascal OSErr AEHandleQuit( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
{ {
// GD: UNUSED wxApp* app = (wxApp*) refcon ; // GD: UNUSED wxApp* app = (wxApp*) refcon ;
return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ; return wxTheApp->MacHandleAEQuit( (AppleEvent*) event , reply) ;
} }
short wxApp::MacHandleAEODoc(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEODoc(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
SysBeep(40) ; SysBeep(40) ;
ProcessSerialNumber PSN ; ProcessSerialNumber PSN ;
@@ -141,17 +141,17 @@ short wxApp::MacHandleAEODoc(const WXEVENTREF event , WXEVENTREF reply)
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEPDoc(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEPDoc(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEOApp(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEOApp(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
return noErr ; return noErr ;
} }
short wxApp::MacHandleAEQuit(const WXEVENTREF event , WXEVENTREF reply) short wxApp::MacHandleAEQuit(const WXEVENTREF WXUNUSED(event) , WXEVENTREF WXUNUSED(reply))
{ {
wxWindow* win = GetTopWindow() ; wxWindow* win = GetTopWindow() ;
if ( win ) if ( win )
@@ -804,7 +804,7 @@ pascal void __wxterminate(void)
#endif /* WXMAKINGDLL && !__DARWIN__ */ #endif /* WXMAKINGDLL && !__DARWIN__ */
int WXDLLEXPORT wxEntryStart( int argc, char *argv[] ) int WXDLLEXPORT wxEntryStart( int WXUNUSED(argc), char *WXUNUSED(argv)[] )
{ {
return wxApp::Initialize(); return wxApp::Initialize();
} }
@@ -1296,25 +1296,38 @@ void wxApp::MacSuspend( bool convertClipboard )
node = node->Next(); node = node->Next();
} }
s_lastMouseDown = 0 ; s_lastMouseDown = 0 ;
if( convertClipboard ) if( convertClipboard )
{ {
MacConvertPrivateToPublicScrap() ; MacConvertPrivateToPublicScrap() ;
} }
::HideFloatingWindows() ; ::HideFloatingWindows() ;
} }
extern wxList wxModalDialogs;
void wxApp::MacResume( bool convertClipboard ) void wxApp::MacResume( bool convertClipboard )
{ {
s_lastMouseDown = 0 ; s_lastMouseDown = 0 ;
if( convertClipboard ) if( convertClipboard )
{ {
MacConvertPublicToPrivateScrap() ; MacConvertPublicToPrivateScrap() ;
} }
::ShowFloatingWindows() ;
// raise modal dialogs in case a non modal window was selected to activate the app
::ShowFloatingWindows() ; wxNode* node = wxModalDialogs.First();
while (node)
{
wxDialog* dialog = (wxDialog *) node->Data();
dialog->Raise();
node = node->Next();
}
} }
void wxApp::MacConvertPrivateToPublicScrap() void wxApp::MacConvertPrivateToPublicScrap()