mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-06 23:02:42 +02:00
Bug1431: Undocked toolbars should hide when project window minimizes
This commit is contained in:
parent
fe1a0844d0
commit
625584d99a
@ -2174,6 +2174,22 @@ void AudacityProject::OnUpdateUI(wxUpdateUIEvent & WXUNUSED(event))
|
|||||||
UpdateMenus();
|
UpdateMenus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AudacityProject::MacShowUndockedToolbars(bool show)
|
||||||
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// Find all the floating toolbars, and show or hide them
|
||||||
|
const auto &children = GetChildren();
|
||||||
|
for(const auto &child : children) {
|
||||||
|
if (auto frame = dynamic_cast<ToolFrame*>(child)) {
|
||||||
|
if (!show)
|
||||||
|
frame->Hide();
|
||||||
|
else if (frame->GetToolBar()->IsVisible())
|
||||||
|
frame->Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
void AudacityProject::OnActivate(wxActivateEvent & event)
|
void AudacityProject::OnActivate(wxActivateEvent & event)
|
||||||
{
|
{
|
||||||
// Activate events can fire during window teardown, so just
|
// Activate events can fire during window teardown, so just
|
||||||
@ -2207,6 +2223,10 @@ void AudacityProject::OnActivate(wxActivateEvent & event)
|
|||||||
if (wxGetTopLevelParent(w) ==this) {
|
if (wxGetTopLevelParent(w) ==this) {
|
||||||
mLastFocusedWindow = w;
|
mLastFocusedWindow = w;
|
||||||
}
|
}
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
if (IsIconized())
|
||||||
|
MacShowUndockedToolbars(false);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SetActiveProject(this);
|
SetActiveProject(this);
|
||||||
@ -2220,6 +2240,10 @@ void AudacityProject::OnActivate(wxActivateEvent & event)
|
|||||||
}
|
}
|
||||||
// No longer need to remember the last focused window
|
// No longer need to remember the last focused window
|
||||||
mLastFocusedWindow = NULL;
|
mLastFocusedWindow = NULL;
|
||||||
|
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
MacShowUndockedToolbars(true);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
@ -312,7 +312,9 @@ class AUDACITY_DLL_API AudacityProject final : public wxFrame,
|
|||||||
void OnMenu(wxCommandEvent & event);
|
void OnMenu(wxCommandEvent & event);
|
||||||
void OnUpdateUI(wxUpdateUIEvent & event);
|
void OnUpdateUI(wxUpdateUIEvent & event);
|
||||||
|
|
||||||
|
void MacShowUndockedToolbars(bool show);
|
||||||
void OnActivate(wxActivateEvent & event);
|
void OnActivate(wxActivateEvent & event);
|
||||||
|
|
||||||
void OnMouseEvent(wxMouseEvent & event);
|
void OnMouseEvent(wxMouseEvent & event);
|
||||||
void OnIconize(wxIconizeEvent &event);
|
void OnIconize(wxIconizeEvent &event);
|
||||||
void OnSize(wxSizeEvent & event);
|
void OnSize(wxSizeEvent & event);
|
||||||
|
@ -925,6 +925,18 @@ AudacityProject * TrackPanel::GetProject() const
|
|||||||
/// AS: This gets called on our wx timer events.
|
/// AS: This gets called on our wx timer events.
|
||||||
void TrackPanel::OnTimer(wxTimerEvent& )
|
void TrackPanel::OnTimer(wxTimerEvent& )
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// Unfortunate part of fix for bug 1431
|
||||||
|
// Without this, the toolbars hide only every other time that you press
|
||||||
|
// the yellow title bar button. For some reason, not every press sends
|
||||||
|
// us a deactivate event for the application.
|
||||||
|
{
|
||||||
|
auto project = GetProject();
|
||||||
|
if (project->IsIconized())
|
||||||
|
project->MacShowUndockedToolbars(false);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
mTimeCount++;
|
mTimeCount++;
|
||||||
// AS: If the user is dragging the mouse and there is a track that
|
// AS: If the user is dragging the mouse and there is a track that
|
||||||
// has captured the mouse, then scroll the screen, as necessary.
|
// has captured the mouse, then scroll the screen, as necessary.
|
||||||
|
@ -138,6 +138,8 @@ public:
|
|||||||
|
|
||||||
~ToolFrame();
|
~ToolFrame();
|
||||||
|
|
||||||
|
ToolBar *GetToolBar() { return mBar; }
|
||||||
|
|
||||||
//
|
//
|
||||||
// Transition a toolbar from float to dragging
|
// Transition a toolbar from float to dragging
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user