]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/nonownedwnd_osx.cpp
always use hw-accel, fixes #15536, applied with thanks
[wxWidgets.git] / src / osx / nonownedwnd_osx.cpp
index 1d643a0fdb0eafa19eaa447492a99b59def57fbb..9e7f1e185cb9ac5ac75b73bd2e4f418e0ef12da6 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     implementation of wxNonOwnedWindow
 // Author:      Stefan Csomor
 // Created:     2008-03-24
-// RCS-ID:      $Id$
 // Copyright:   (c) Stefan Csomor 2008
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -39,6 +38,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 +248,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;
@@ -307,12 +306,9 @@ void wxNonOwnedWindow::HandleActivated( double timestampsec, bool didActivate )
     HandleWindowEvent(wxevent);
 }
 
-void wxNonOwnedWindow::HandleResized( double timestampsec )
+void wxNonOwnedWindow::HandleResized( double WXUNUSED(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 +379,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 +477,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
@@ -494,6 +496,11 @@ WXWindow wxNonOwnedWindow::GetWXWindow() const
     return m_nowpeer ? m_nowpeer->GetWXWindow() : NULL;
 }
 
+void *wxNonOwnedWindow::OSXGetViewOrWindow() const
+{
+    return GetWXWindow();
+}
+
 // ---------------------------------------------------------------------------
 // Shape implementation
 // ---------------------------------------------------------------------------