avoid GtkAlignment and gtk_widget_reparent(), deprecated in GTK+ 3.14

This commit is contained in:
Paul Cornett
2015-10-10 11:42:01 -07:00
parent a0173ec13e
commit 48459e3cd2

View File

@@ -26,6 +26,7 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
#include "wx/gtk/private/gtk2-compat.h" #include "wx/gtk/private/gtk2-compat.h"
#include "wx/gtk/private/gtk3-compat.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// data // data
@@ -357,6 +358,17 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK); GDK_POINTER_MOTION_HINT_MASK);
gtk_widget_show(eventbox); 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 // Use a GtkAlignment to position m_mainWidget inside the decorations
GtkWidget* alignment = gtk_alignment_new(0, 0, 1, 1); GtkWidget* alignment = gtk_alignment_new(0, 0, 1, 1);
gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 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 // The GtkEventBox and GtkAlignment go between m_widget and m_mainWidget
gtk_widget_reparent(m_mainWidget, alignment); gtk_widget_reparent(m_mainWidget, alignment);
gtk_container_add(GTK_CONTAINER(eventbox), alignment); gtk_container_add(GTK_CONTAINER(eventbox), alignment);
#endif
gtk_container_add(GTK_CONTAINER(m_widget), eventbox); gtk_container_add(GTK_CONTAINER(m_widget), eventbox);
m_gdkDecor = 0; m_gdkDecor = 0;