]> git.saurik.com Git - wxWidgets.git/commitdiff
Postpone size event from wxTLW resizing to idle
authorRobert Roebling <robert@roebling.de>
Fri, 23 Jan 2009 14:04:32 +0000 (14:04 +0000)
committerRobert Roebling <robert@roebling.de>
Fri, 23 Jan 2009 14:04:32 +0000 (14:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/toplevel.h
src/gtk/toplevel.cpp

index 1670cff48678f2ff939aa14b8484202564d06817..53c99fdac0443a1c9ab631d440fec70374f52053 100644 (file)
@@ -148,6 +148,9 @@ private:
     bool m_grabbed;
 
     bool m_updateDecorSize;
+    
+public:
+    bool m_resizeQueued;
 };
 
 #endif // _WX_GTK_TOPLEVEL_H_
index 8990d423040e489ee8d8e37457b7e96fab72f6f3..4f3fbe689c7faf95546c15f5a37407520383689a 100644 (file)
@@ -222,9 +222,13 @@ size_allocate(GtkWidget*, GtkAllocation* alloc, wxTopLevelWindowGTK* win)
 
         if (!win->IsIconized())
         {
+#if 1
+            win->m_resizeQueued = true;
+#else
             wxSizeEvent event(size, win->GetId());
             event.SetEventObject(win);
             win->HandleWindowEvent(event);
+#endif
         }
         // else the window is currently unmapped, don't generate size events
     }
@@ -445,6 +449,8 @@ void wxTopLevelWindowGTK::Init()
     m_updateDecorSize = true;
 
     m_urgency_hint = -2;
+    
+    m_resizeQueued = false;
 }
 
 bool wxTopLevelWindowGTK::Create( wxWindow *parent,
@@ -1089,6 +1095,15 @@ void wxTopLevelWindowGTK::OnInternalIdle()
 
         wxTheApp->SetActive(activate, (wxWindow *)g_lastActiveFrame);
     }
+    
+    if (m_resizeQueued)
+    {
+        wxSize size( m_width, m_height );
+        wxSizeEvent event(size, GetId());
+        event.SetEventObject(this);
+        HandleWindowEvent(event);
+        m_resizeQueued = false;
+    }
 }
 
 // ----------------------------------------------------------------------------