X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c59112bba521ed133ba22df39b93f2d8eaf9d885..844cada1622b2923754493a4c8eb91b82232093e:/src/cocoa/stattext.mm diff --git a/src/cocoa/stattext.mm b/src/cocoa/stattext.mm index 6470799b58..d9b5dc5075 100644 --- a/src/cocoa/stattext.mm +++ b/src/cocoa/stattext.mm @@ -82,22 +82,26 @@ void wxStaticText::SetLabel(const wxString& label) [GetNSTextField() setStringValue:wxNSStringWithWxString(GetLabelText(label))]; NSRect oldFrameRect = [GetNSTextField() frame]; NSView *superview = [GetNSTextField() superview]; - wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel Old Position: (%d,%d)"), GetPosition().x, GetPosition().y); - [GetNSTextField() sizeToFit]; - NSRect newFrameRect = [GetNSTextField() frame]; - // Ensure new size is an integer so GetSize returns valid data - newFrameRect.size.height = ceil(newFrameRect.size.height); - newFrameRect.size.width = ceil(newFrameRect.size.width); - if(![superview isFlipped]) + + if(!(GetWindowStyle() & wxST_NO_AUTORESIZE)) { - newFrameRect.origin.y = oldFrameRect.origin.y + oldFrameRect.size.height - newFrameRect.size.height; + wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel Old Position: (%d,%d)"), GetPosition().x, GetPosition().y); + [GetNSTextField() sizeToFit]; + NSRect newFrameRect = [GetNSTextField() frame]; + // Ensure new size is an integer so GetSize returns valid data + newFrameRect.size.height = ceil(newFrameRect.size.height); + newFrameRect.size.width = ceil(newFrameRect.size.width); + if(![superview isFlipped]) + { + newFrameRect.origin.y = oldFrameRect.origin.y + oldFrameRect.size.height - newFrameRect.size.height; + } + [GetNSTextField() setFrame:newFrameRect]; + // New origin (wx coords) should always match old origin + wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel New Position: (%d,%d)"), GetPosition().x, GetPosition().y); + [superview setNeedsDisplayInRect:newFrameRect]; } - [GetNSTextField() setFrame:newFrameRect]; - // New origin (wx coords) should always match old origin - wxLogTrace(wxTRACE_COCOA_Window_Size, wxT("wxStaticText::SetLabel New Position: (%d,%d)"), GetPosition().x, GetPosition().y); - [[GetNSTextField() superview] setNeedsDisplayInRect:oldFrameRect]; - [[GetNSTextField() superview] setNeedsDisplayInRect:newFrameRect]; + [superview setNeedsDisplayInRect:oldFrameRect]; } wxString wxStaticText::GetLabel() const