]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/nonownedwnd_osx.cpp
Use the best instead of current page size in OS X preferences dialog.
[wxWidgets.git] / src / osx / nonownedwnd_osx.cpp
index 1d643a0fdb0eafa19eaa447492a99b59def57fbb..10daf9d052677b4d4cd3befa3c45b6c267721a82 100644 (file)
@@ -39,6 +39,8 @@
 
 wxWindow* g_MacLastWindow = NULL ;
 
 
 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)
 
 // unified title and toolbar constant - not in Tiger headers, so we duplicate it here
 #define kWindowUnifiedTitleAndToolbarAttribute (1 << 7)
 
@@ -247,6 +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
     {
         // as apps expect a size event to occur when the window is shown,
         // generate one when it is shown with effect too
+        MacOnInternalSize();
         wxSizeEvent event(GetSize(), m_windowId);
         event.SetEventObject(this);
         HandleWindowEvent(event);
         wxSizeEvent event(GetSize(), m_windowId);
         event.SetEventObject(this);
         HandleWindowEvent(event);
@@ -309,6 +312,7 @@ void wxNonOwnedWindow::HandleActivated( double timestampsec, bool didActivate )
 
 void wxNonOwnedWindow::HandleResized( double timestampsec )
 {
 
 void wxNonOwnedWindow::HandleResized( double timestampsec )
 {
+    MacOnInternalSize();
     wxSizeEvent wxevent( GetSize() , GetId());
     wxevent.SetTimestamp( (int) (timestampsec * 1000) );
     wxevent.SetEventObject( this );
     wxSizeEvent wxevent( GetSize() , GetId());
     wxevent.SetTimestamp( (int) (timestampsec * 1000) );
     wxevent.SetEventObject( this );
@@ -383,6 +387,7 @@ bool wxNonOwnedWindow::Show(bool show)
     if ( show )
     {
         // because apps expect a size event to occur at this moment
     if ( show )
     {
         // because apps expect a size event to occur at this moment
+        MacOnInternalSize();
         wxSizeEvent event(GetSize() , m_windowId);
         event.SetEventObject(this);
         HandleWindowEvent(event);
         wxSizeEvent event(GetSize() , m_windowId);
         event.SetEventObject(this);
         HandleWindowEvent(event);
@@ -483,10 +488,18 @@ void wxNonOwnedWindow::DoGetClientSize( int *width, int *height ) const
        *height = h ;
 }
 
        *height = h ;
 }
 
+void wxNonOwnedWindow::WindowWasPainted()
+{
+    s_lastFlush = clock();
+}
 
 void wxNonOwnedWindow::Update()
 {
 
 void wxNonOwnedWindow::Update()
 {
-    m_nowpeer->Update();
+    if ( clock() - s_lastFlush > CLOCKS_PER_SEC / 30 )
+    {
+        s_lastFlush = clock();
+        m_nowpeer->Update();
+    }
 }
 
 WXWindow wxNonOwnedWindow::GetWXWindow() const
 }
 
 WXWindow wxNonOwnedWindow::GetWXWindow() const