X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1897abe1d8ac5e9575f4c9a589ea7ce08189506a..11a23db53128bf244a089123b7fd27deb577a889:/src/gtk/frame.cpp?ds=inline diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp index 940c5c2d1b..3f7ab5ab1d 100644 --- a/src/gtk/frame.cpp +++ b/src/gtk/frame.cpp @@ -2,7 +2,6 @@ // Name: src/gtk/frame.cpp // Purpose: // Author: Robert Roebling -// Id: $Id$ // Copyright: (c) 1998 Robert Roebling // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -74,6 +73,9 @@ void wxFrame::DoGetClientSize( int *width, int *height ) const wxFrameBase::DoGetClientSize(width, height); + if (m_useCachedClientSize) + return; + if (height) { #if wxUSE_MENUS_NATIVE @@ -287,7 +289,8 @@ void wxFrame::DetachMenuBar() wxFrameBase::DetachMenuBar(); // make sure next size_allocate causes a wxSizeEvent - m_oldClientWidth = 0; + m_useCachedClientSize = false; + m_clientWidth = 0; } void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) @@ -298,9 +301,8 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) { #if wxUSE_LIBHILDON || wxUSE_LIBHILDON2 hildon_window_set_menu(HILDON_WINDOW(m_widget), - GTK_MENU(m_frameMenuBar->m_menubar)); + GTK_MENU(m_frameMenuBar->m_widget)); #else // !wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 - m_frameMenuBar->SetParent(this); // menubar goes into top of vbox (m_mainWidget) gtk_box_pack_start( @@ -314,7 +316,8 @@ void wxFrame::AttachMenuBar( wxMenuBar *menuBar ) #endif // wxUSE_LIBHILDON || wxUSE_LIBHILDON2/!wxUSE_LIBHILDON && !wxUSE_LIBHILDON2 } // make sure next size_allocate causes a wxSizeEvent - m_oldClientWidth = 0; + m_useCachedClientSize = false; + m_clientWidth = 0; } #endif // wxUSE_MENUS_NATIVE @@ -365,7 +368,8 @@ void wxFrame::SetToolBar(wxToolBar *toolbar) gtk_widget_set_size_request(toolbar->m_widget, -1, -1); } // make sure next size_allocate causes a wxSizeEvent - m_oldClientWidth = 0; + m_useCachedClientSize = false; + m_clientWidth = 0; } #endif // wxUSE_TOOLBAR @@ -382,7 +386,8 @@ void wxFrame::SetStatusBar(wxStatusBar *statbar) gtk_box_set_child_packing(GTK_BOX(m_mainWidget), statbar->m_widget, false, false, 0, GTK_PACK_END); // make sure next size_allocate on statusbar causes a size event - statbar->m_oldClientWidth = 0; + statbar->m_useCachedClientSize = false; + statbar->m_clientWidth = 0; int h = -1; if (statbar->m_wxwindow) { @@ -392,6 +397,7 @@ void wxFrame::SetStatusBar(wxStatusBar *statbar) gtk_widget_set_size_request(statbar->m_widget, -1, h); } // make sure next size_allocate causes a wxSizeEvent - m_oldClientWidth = 0; + m_useCachedClientSize = false; + m_clientWidth = 0; } #endif // wxUSE_STATUSBAR