mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 16:10:06 +02:00
Bug #334 - On OSX, this fixes the issue where you can
terminate Audacity while the progress dialog is being displayed.
This commit is contained in:
parent
8a1546ddaf
commit
dbf2cdf605
@ -37,6 +37,9 @@
|
|||||||
#include <wx/event.h>
|
#include <wx/event.h>
|
||||||
#include <wx/frame.h>
|
#include <wx/frame.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
|
#if defined(__WXMAC__)
|
||||||
|
#include <wx/menu.h>
|
||||||
|
#endif
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
#include <wx/stopwatch.h>
|
#include <wx/stopwatch.h>
|
||||||
@ -1144,6 +1147,21 @@ ProgressDialog::ProgressDialog(const wxString & title, const wxString & message,
|
|||||||
// delay, we MUST disable other windows/menus anyway since we run the risk
|
// delay, we MUST disable other windows/menus anyway since we run the risk
|
||||||
// of allowing other tasks to run before this one is complete.
|
// of allowing other tasks to run before this one is complete.
|
||||||
mDisable = new wxWindowDisabler(this);
|
mDisable = new wxWindowDisabler(this);
|
||||||
|
|
||||||
|
#if defined(__WXMAC__)
|
||||||
|
// LL: On the Mac, the parent windows get disabled, but they still respond
|
||||||
|
// to the close button being clicked and the application quit menu item
|
||||||
|
// is still enabled. We do not want the parent window to be destroyed
|
||||||
|
// while we're active, so we have to kludge around a bit to keep this
|
||||||
|
// from happening.
|
||||||
|
WindowRef windowRef = (WindowRef) MacGetWindowRef();
|
||||||
|
SetWindowModality( windowRef, kWindowModalityAppModal, NULL ) ;
|
||||||
|
BeginAppModalStateForWindow(windowRef);
|
||||||
|
|
||||||
|
wxMenuBar *bar = wxStaticCast(wxGetTopLevelParent(wxTheApp->GetTopWindow()), wxFrame)->GetMenuBar();
|
||||||
|
bar->Enable(wxID_PREFERENCES, false);
|
||||||
|
bar->Enable(wxID_EXIT, false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -1158,10 +1176,18 @@ ProgressDialog::~ProgressDialog()
|
|||||||
Beep();
|
Beep();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__WXMAC__)
|
||||||
|
wxMenuBar *bar = wxStaticCast(wxGetTopLevelParent(wxTheApp->GetTopWindow()), wxFrame)->GetMenuBar();
|
||||||
|
bar->Enable(wxID_PREFERENCES, true);
|
||||||
|
bar->Enable(wxID_EXIT, true);
|
||||||
|
|
||||||
|
WindowRef windowRef = (WindowRef) MacGetWindowRef();
|
||||||
|
EndAppModalStateForWindow(windowRef);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (mDisable)
|
if (mDisable)
|
||||||
{
|
{
|
||||||
delete mDisable;
|
delete mDisable;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__WXGTK__)
|
#if defined(__WXGTK__)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user