From 48459e3cd2749c2021d0815ba42cca94eeec77ad Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sat, 10 Oct 2015 11:42:01 -0700 Subject: [PATCH] avoid GtkAlignment and gtk_widget_reparent(), deprecated in GTK+ 3.14 --- src/gtk/minifram.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/gtk/minifram.cpp b/src/gtk/minifram.cpp index 33c7f73f48..f698891257 100644 --- a/src/gtk/minifram.cpp +++ b/src/gtk/minifram.cpp @@ -26,6 +26,7 @@ #include #include "wx/gtk/private/gtk2-compat.h" +#include "wx/gtk/private/gtk3-compat.h" //----------------------------------------------------------------------------- // data @@ -357,6 +358,17 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK); gtk_widget_show(eventbox); +#ifdef __WXGTK3__ + g_object_ref(m_mainWidget); + gtk_container_remove(GTK_CONTAINER(m_widget), m_mainWidget); + gtk_container_add(GTK_CONTAINER(eventbox), m_mainWidget); + g_object_unref(m_mainWidget); + + gtk_widget_set_margin_start(m_mainWidget, m_miniEdge); + gtk_widget_set_margin_end(m_mainWidget, m_miniEdge); + gtk_widget_set_margin_top(m_mainWidget, m_miniTitle + m_miniEdge); + gtk_widget_set_margin_bottom(m_mainWidget, m_miniEdge); +#else // Use a GtkAlignment to position m_mainWidget inside the decorations GtkWidget* alignment = gtk_alignment_new(0, 0, 1, 1); gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), @@ -365,6 +377,7 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title // The GtkEventBox and GtkAlignment go between m_widget and m_mainWidget gtk_widget_reparent(m_mainWidget, alignment); gtk_container_add(GTK_CONTAINER(eventbox), alignment); +#endif gtk_container_add(GTK_CONTAINER(m_widget), eventbox); m_gdkDecor = 0;