]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/tbargtk.cpp
revert updating GTK size hints when window decorations change, it messes up min size...
[wxWidgets.git] / src / gtk / tbargtk.cpp
index 54e50ec64a700125416fc2868c3347b627791b2e..68b72f8fbc885268637683acce9f0e07d3c366ce 100644 (file)
@@ -8,14 +8,6 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-// ============================================================================
-// declarations
-// ============================================================================
-
-// ----------------------------------------------------------------------------
-// headers
-// ----------------------------------------------------------------------------
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -286,7 +278,7 @@ static gboolean gtk_toolbar_dropdown_lclick_callback(GtkWidget *widget,
     if (!tool->IsEnabled()) return FALSE;
 
     wxCommandEvent evt(wxEVT_COMMAND_TOOL_DROPDOWN_CLICKED, tool->GetId() );
-    if ( tbar->GetEventHandler()->ProcessEvent(evt) )
+    if ( tbar->HandleWindowEvent(evt) )
     {
         return TRUE;
     }
@@ -333,6 +325,20 @@ static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
 }
 }
 
+//-----------------------------------------------------------------------------
+// "size_request" from m_toolbar
+//-----------------------------------------------------------------------------
+
+extern "C" {
+static void
+size_request(GtkWidget*, GtkRequisition* req, wxToolBar* win)
+{
+    const wxSize margins = win->GetMargins();
+    req->width  += margins.x;
+    req->height += 2 * margins.y;
+}
+}
+
 //-----------------------------------------------------------------------------
 // InsertChild callback for wxToolBar
 //-----------------------------------------------------------------------------
@@ -445,10 +451,13 @@ bool wxToolBar::Create( wxWindow *parent,
 
     PostCreation(size);
 
+    g_signal_connect_after(m_toolbar, "size_request",
+        G_CALLBACK(size_request), this);
+
     return true;
 }
 
-GdkWindow *wxToolBar::GTKGetWindow(wxArrayGdkWindows& windows) const
+GdkWindow *wxToolBar::GTKGetWindow(wxArrayGdkWindows& WXUNUSED(windows)) const
 {
     return GTK_WIDGET(m_toolbar)->window;
 }
@@ -635,11 +644,6 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
             break;
     }
 
-    GtkRequisition req;
-    (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request )
-        (m_widget, &req );
-    m_width = req.width + m_xMargin;
-    m_height = req.height + 2*m_yMargin;
     InvalidateBestSize();
 
     return true;