X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4fec5b41e2109e2c4822d3015aa0e442754bfbb..c315587c21ed44e54fbb3c1b36f0f70f78314081:/src/osx/carbon/nonownedwnd.cpp diff --git a/src/osx/carbon/nonownedwnd.cpp b/src/osx/carbon/nonownedwnd.cpp index 179f6b4997..db30cb846c 100644 --- a/src/osx/carbon/nonownedwnd.cpp +++ b/src/osx/carbon/nonownedwnd.cpp @@ -99,12 +99,18 @@ bool wxNonOwnedWindowCarbonImpl::SetBackgroundColour(const wxColour& col ) if ( col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDocumentWindowBackground)) ) { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDocumentWindowBackground, false ) ; - SetBackgroundStyle(wxBG_STYLE_SYSTEM); + m_wxPeer->SetBackgroundStyle(wxBG_STYLE_SYSTEM); + // call directly if object is not yet completely constructed + if ( m_wxPeer->GetNonOwnedPeer() == NULL ) + SetBackgroundStyle(wxBG_STYLE_SYSTEM); } else if ( col == wxColour(wxMacCreateCGColorFromHITheme(kThemeBrushDialogBackgroundActive)) ) { SetThemeWindowBackground( (WindowRef) m_macWindow, kThemeBrushDialogBackgroundActive, false ) ; - SetBackgroundStyle(wxBG_STYLE_SYSTEM); + m_wxPeer->SetBackgroundStyle(wxBG_STYLE_SYSTEM); + // call directly if object is not yet completely constructed + if ( m_wxPeer->GetNonOwnedPeer() == NULL ) + SetBackgroundStyle(wxBG_STYLE_SYSTEM); } return true; } @@ -126,7 +132,7 @@ void wxNonOwnedWindowCarbonImpl::SetExtraStyle( long exStyle ) } bool wxNonOwnedWindowCarbonImpl::SetBackgroundStyle(wxBackgroundStyle style) -{ +{ if ( style == wxBG_STYLE_TRANSPARENT ) { OSStatus err = HIWindowChangeFeatures( m_macWindow, 0, kWindowIsOpaque ); @@ -226,7 +232,7 @@ void wxNonOwnedWindowCarbonImpl::MacSetUnifiedAppearance( bool set ) // for wx. // TODO: Determine if we need this on Leopard as well. (should be harmless either way, // though) - // since when creating the peering is not yet completely set-up we call both setters + // since when creating the peering is not yet completely set-up we call both setters // explicitely m_wxPeer->SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW) ) ; SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW) ) ; @@ -674,7 +680,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), ::HiliteMenu(0); result = noErr ; } - } + } else if ( window && windowPart == inProxyIcon ) { // special case proxy icon bar, as we are having a low-level runloop we must do it ourselves @@ -733,7 +739,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxWindow* cursorTarget = currentMouseWindow ; wxPoint cursorPoint( wxevent.m_x , wxevent.m_y ) ; - + extern wxCursor gGlobalCursor; if (!gGlobalCursor.IsOk()) @@ -758,7 +764,7 @@ wxMacTopLevelMouseEventHandler(EventHandlerCallRef WXUNUSED(handler), wxSTANDARD_CURSOR->MacInstall() ; } } - + // don't mess with controls we don't know about // for some reason returning eventNotHandledErr does not lead to the correct behaviour // so we try sending them the correct control directly @@ -862,8 +868,8 @@ wxNonOwnedWindowEventHandler(EventHandlerCallRef WXUNUSED(handler), newRect.bottom - newRect.top + deltaheight ) ; toplevelWindow->HandleResizing( cEvent.GetTicks(), &adjustR ); - - const Rect adjustedRect = { adjustR.y + top , adjustR.x + left , adjustR.y + top + adjustR.height - deltaheight , + + const Rect adjustedRect = { adjustR.y + top , adjustR.x + left , adjustR.y + top + adjustR.height - deltaheight , adjustR.x + left + adjustR.width - deltawidth } ; if ( !EqualRect( &newRect , &adjustedRect ) ) cEvent.SetParameter( kEventParamCurrentBounds , &adjustedRect ) ; @@ -1130,7 +1136,7 @@ wxNonOwnedWindowCarbonImpl::~wxNonOwnedWindowCarbonImpl() } void wxNonOwnedWindowCarbonImpl::Destroy() -{ +{ if ( m_macEventHandler ) { ::RemoveEventHandler((EventHandlerRef) m_macEventHandler); @@ -1180,7 +1186,7 @@ void wxNonOwnedWindowCarbonImpl::Create( wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style, long extraStyle, + long style, long extraStyle, const wxString& WXUNUSED(name) ) { @@ -1477,27 +1483,27 @@ bool wxNonOwnedWindowCarbonImpl::ShowWithEffect(bool show, return true; } -void wxNonOwnedWindowCarbonImpl::SetTitle( const wxString& title, wxFontEncoding encoding ) +void wxNonOwnedWindowCarbonImpl::SetTitle( const wxString& title, wxFontEncoding encoding ) { SetWindowTitleWithCFString( m_macWindow , wxCFStringRef( title , encoding ) ) ; } - + bool wxNonOwnedWindowCarbonImpl::IsMaximized() const { return IsWindowInStandardState( m_macWindow , NULL , NULL ) ; } - + bool wxNonOwnedWindowCarbonImpl::IsIconized() const { return IsWindowCollapsed((WindowRef)GetWXWindow() ) ; } - + void wxNonOwnedWindowCarbonImpl::Iconize( bool iconize ) { if ( IsWindowCollapsable( m_macWindow ) ) CollapseWindow( m_macWindow , iconize ) ; } - + void wxNonOwnedWindowCarbonImpl::Maximize(bool maximize) { Point idealSize = { 0 , 0 } ; @@ -1518,12 +1524,12 @@ void wxNonOwnedWindowCarbonImpl::Maximize(bool maximize) } ZoomWindowIdeal( (WindowRef)GetWXWindow() , maximize ? inZoomOut : inZoomIn , &idealSize ) ; } - + bool wxNonOwnedWindowCarbonImpl::IsFullScreen() const { return m_macFullScreenData != NULL ; } - + bool wxNonOwnedWindowCarbonImpl::ShowFullScreen(bool show, long style) { if ( show ) @@ -1562,7 +1568,7 @@ bool wxNonOwnedWindowCarbonImpl::ShowFullScreen(bool show, long style) y -= top ; h += top ; // avoid adding the caption twice to the height - outerheight -= top; + outerheight -= top; } if ( style & wxFULLSCREEN_NOBORDER ) @@ -1640,9 +1646,9 @@ void wxNonOwnedWindowCarbonImpl::ScreenToWindow( int *x, int *y ) HIViewFindByID( HIViewGetRoot( m_macWindow ), kHIViewWindowContentID , &contentView) ; HIPointConvert( &p, kHICoordSpace72DPIGlobal, NULL, kHICoordSpaceView, contentView ); if ( x ) - *x = p.x; + *x = (int)p.x; if ( y ) - *y = p.y; + *y = (int)p.y; } void wxNonOwnedWindowCarbonImpl::WindowToScreen( int *x, int *y ) @@ -1653,9 +1659,9 @@ void wxNonOwnedWindowCarbonImpl::WindowToScreen( int *x, int *y ) HIViewFindByID( HIViewGetRoot( m_macWindow ), kHIViewWindowContentID , &contentView) ; HIPointConvert( &p, kHICoordSpaceView, contentView, kHICoordSpace72DPIGlobal, NULL ); if ( x ) - *x = p.x; + *x = (int)p.x; if ( y ) - *y = p.y; + *y = (int)p.y; } wxNonOwnedWindowImpl* wxNonOwnedWindowImpl::CreateNonOwnedWindow( wxNonOwnedWindow* wxpeer, wxWindow* parent, const wxPoint& pos, const wxSize& size,