1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-09-18 09:00:52 +02:00

Bug 1602 - Mac: AUPeakLimiter plug-in visual corruption makes it hard to use the effect

And fix for #3 listed here:

https://forum.audacityteam.org/viewtopic.php?f=47&t=109165&p=387698#p387698
This commit is contained in:
Leland Lucius 2020-03-06 23:20:23 -06:00
parent 6c9cdb4bc1
commit d15308b7e7

View File

@ -227,6 +227,8 @@ void AUControl::OnSize(wxSizeEvent & evt)
NSRect viewFrame = [mAUView frame]; NSRect viewFrame = [mAUView frame];
NSRect viewRect = [mView frame]; NSRect viewRect = [mView frame];
if (mask & (NSViewWidthSizable | NSViewHeightSizable))
{
if (mask & NSViewWidthSizable) if (mask & NSViewWidthSizable)
{ {
viewRect.size.width = sz.GetWidth(); viewRect.size.width = sz.GetWidth();
@ -237,11 +239,22 @@ void AUControl::OnSize(wxSizeEvent & evt)
viewRect.size.height = sz.GetHeight(); viewRect.size.height = sz.GetHeight();
} }
viewRect.origin.x = (viewFrame.size.width - viewRect.size.width) / 2; viewRect.origin.x = 0;
viewRect.origin.y = (viewFrame.size.height - viewRect.size.height) / 2; viewRect.origin.y = 0;
[mView setFrame:viewRect]; [mView setFrame:viewRect];
} }
else
{
viewRect.origin.x = abs((viewFrame.size.width - viewRect.size.width) / 2);
viewRect.origin.y = abs((viewFrame.size.height - viewRect.size.height) / 2);
if (viewRect.origin.x || viewRect.origin.y)
{
[mAUView setFrame:viewRect];
}
}
}
#if !defined(_LP64) #if !defined(_LP64)
else if (mHIView) else if (mHIView)
@ -440,29 +453,32 @@ void AUControl::CocoaViewResized()
[mAUView setFrameSize:viewSize]; [mAUView setFrameSize:viewSize];
SetMinSize(wxSize(viewSize.width, viewSize.height));;
int diffW = (viewSize.width - frameSize.width); int diffW = (viewSize.width - frameSize.width);
int diffH = (viewSize.height - frameSize.height); int diffH = (viewSize.height - frameSize.height);
wxWindow *w = wxGetTopLevelParent(this); wxWindow *w = wxGetTopLevelParent(this);
wxSize min = w->GetMinSize(); wxSize min = w->GetMinSize();
if ([mView autoresizingMask] == NSViewNotSizable) if ([mView autoresizingMask] & (NSViewWidthSizable | NSViewHeightSizable))
{
min.x += diffW;
min.y += diffH;
}
else
{ {
min.x += (viewSize.width - mLastMin.GetWidth()); min.x += (viewSize.width - mLastMin.GetWidth());
min.y += (viewSize.height - mLastMin.GetHeight()); min.y += (viewSize.height - mLastMin.GetHeight());
mLastMin = wxSize(viewSize.width, viewSize.height);; mLastMin = wxSize(viewSize.width, viewSize.height);;
} }
else
{
min.x += diffW;
min.y += diffH;
}
w->SetMinSize(min); w->SetMinSize(min);
wxSize size = w->GetSize(); // Resize the dialog as well
size.x += diffW; w->Fit();
size.y += diffH;
w->SetSize(size); // Send a "dummy" event to have the OnSize() method recalc mView position
GetEventHandler()->AddPendingEvent(wxSizeEvent(GetSize()));
} }
#if !defined(_LP64) #if !defined(_LP64)