Index: src/gtk/frame.cpp =================================================================== --- src/gtk/frame.cpp (revision 62486) +++ src/gtk/frame.cpp (revision 62487) @@ -78,6 +78,30 @@ } } +//----------------------------------------------------------------------------- +// "size-request" from menubar +//----------------------------------------------------------------------------- + +extern "C" { +static void menubar_size_request(GtkWidget* widget, GtkRequisition*, wxFrame* win) +{ + g_signal_handlers_disconnect_by_func( + widget, (void*)menubar_size_request, win); + win->UpdateMenuBarSize(); +} +} + +//----------------------------------------------------------------------------- +// "style-set" from menubar +//----------------------------------------------------------------------------- + +extern "C" { +static void menubar_style_set(GtkWidget* widget, GtkStyle*, wxFrame* win) +{ + g_signal_connect(widget, "size-request", + G_CALLBACK(menubar_size_request), win); +} +} #endif // wxUSE_MENUS_NATIVE #if wxUSE_TOOLBAR @@ -571,6 +595,9 @@ if ( m_frameMenuBar ) { + g_signal_handlers_disconnect_by_func( + m_frameMenuBar->m_widget, (void*)menubar_style_set, this); + m_frameMenuBar->UnsetInvokingWindow( this ); if (m_frameMenuBar->GetWindowStyle() & wxMB_DOCKABLE) @@ -621,6 +648,9 @@ gtk_widget_show( m_frameMenuBar->m_widget ); UpdateMenuBarSize(); + + g_signal_connect(menuBar->m_widget, "style-set", + G_CALLBACK(menubar_style_set), this); } else {