X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/83ed867e70da06acb2311fa5749263b483c2002c..7c60222510bc5e197b12f153c4bf05db66cb0f4a:/src/osx/nonownedwnd_osx.cpp diff --git a/src/osx/nonownedwnd_osx.cpp b/src/osx/nonownedwnd_osx.cpp index 1d643a0fdb..edcba5d9ce 100644 --- a/src/osx/nonownedwnd_osx.cpp +++ b/src/osx/nonownedwnd_osx.cpp @@ -39,6 +39,8 @@ wxWindow* g_MacLastWindow = NULL ; +clock_t wxNonOwnedWindow::s_lastFlush = 0; + // unified title and toolbar constant - not in Tiger headers, so we duplicate it here #define kWindowUnifiedTitleAndToolbarAttribute (1 << 7) @@ -247,9 +249,7 @@ bool wxNonOwnedWindow::OSXShowWithEffect(bool show, { // as apps expect a size event to occur when the window is shown, // generate one when it is shown with effect too - wxSizeEvent event(GetSize(), m_windowId); - event.SetEventObject(this); - HandleWindowEvent(event); + SendSizeEvent(); } return true; @@ -309,10 +309,7 @@ void wxNonOwnedWindow::HandleActivated( double timestampsec, bool didActivate ) void wxNonOwnedWindow::HandleResized( double timestampsec ) { - wxSizeEvent wxevent( GetSize() , GetId()); - wxevent.SetTimestamp( (int) (timestampsec * 1000) ); - wxevent.SetEventObject( this ); - HandleWindowEvent(wxevent); + SendSizeEvent(); // we have to inform some controls that have to reset things // relative to the toplevel window (e.g. OpenGL buffers) wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified @@ -383,9 +380,7 @@ bool wxNonOwnedWindow::Show(bool show) if ( show ) { // because apps expect a size event to occur at this moment - wxSizeEvent event(GetSize() , m_windowId); - event.SetEventObject(this); - HandleWindowEvent(event); + SendSizeEvent(); } return true ; @@ -483,10 +478,18 @@ void wxNonOwnedWindow::DoGetClientSize( int *width, int *height ) const *height = h ; } +void wxNonOwnedWindow::WindowWasPainted() +{ + s_lastFlush = clock(); +} void wxNonOwnedWindow::Update() { - m_nowpeer->Update(); + if ( clock() - s_lastFlush > CLOCKS_PER_SEC / 30 ) + { + s_lastFlush = clock(); + m_nowpeer->Update(); + } } WXWindow wxNonOwnedWindow::GetWXWindow() const