Blame wxGTK-2.8.10-menubar-height.patch

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