diff --git a/clientgui/BOINCTaskBar.cpp b/clientgui/BOINCTaskBar.cpp index c99ae08696..157e05ef43 100644 --- a/clientgui/BOINCTaskBar.cpp +++ b/clientgui/BOINCTaskBar.cpp @@ -435,7 +435,8 @@ void CTaskBarIcon::AdjustMenuItems(wxMenu* menu) { } #ifdef __WXMAC__ - WindowRef win = ActiveNonFloatingWindow(); +// WindowRef win = ActiveNonFloatingWindow(); + WindowRef win = FrontWindow(); WindowModality modality = kWindowModalityNone; wxMenuItem *item; unsigned int i; diff --git a/clientgui/mac/MacSysMenu.cpp b/clientgui/mac/MacSysMenu.cpp index d4263c56c9..ca0cb924ec 100644 --- a/clientgui/mac/MacSysMenu.cpp +++ b/clientgui/mac/MacSysMenu.cpp @@ -262,6 +262,15 @@ pascal OSStatus SysMenuEventHandler( EventHandlerCallRef inHandlerCallRef, pFrame->Show(); pFrame->SendSizeEvent(); } + // If a modal dialog was open, make sure it remains in front + WindowRef win = GetWindowList(); + WindowModality modality = kWindowModalityNone; + while (win) { + GetWindowModality(win, &modality, NULL); + if (modality == kWindowModalityAppModal) + BringToFront(win); + win = GetNextWindow(win); + } break; }