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
{