From d7ce4338972dc2eb6d50bb93d178023658d9add4 Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Fri, 23 Jan 2009 14:04:32 +0000 Subject: [PATCH] Postpone size event from wxTLW resizing to idle git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58332 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/toplevel.h | 3 +++ src/gtk/toplevel.cpp | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/include/wx/gtk/toplevel.h b/include/wx/gtk/toplevel.h index 1670cff486..53c99fdac0 100644 --- a/include/wx/gtk/toplevel.h +++ b/include/wx/gtk/toplevel.h @@ -148,6 +148,9 @@ private: bool m_grabbed; bool m_updateDecorSize; + +public: + bool m_resizeQueued; }; #endif // _WX_GTK_TOPLEVEL_H_ diff --git a/src/gtk/toplevel.cpp b/src/gtk/toplevel.cpp index 8990d42304..4f3fbe689c 100644 --- a/src/gtk/toplevel.cpp +++ b/src/gtk/toplevel.cpp @@ -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; + } } // ---------------------------------------------------------------------------- -- 2.45.2