From 401165241497e609f4d5a08f8eb71a8097289d48 Mon Sep 17 00:00:00 2001 From: Paul Cornett Date: Sat, 29 Dec 2012 07:07:29 +0000 Subject: [PATCH] reference count the GtkMenuItem in wxMenuItem as well git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73311 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/gtk/menuitem.h | 2 +- src/gtk/menu.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/wx/gtk/menuitem.h b/include/wx/gtk/menuitem.h index 6d15510306..157602bb93 100644 --- a/include/wx/gtk/menuitem.h +++ b/include/wx/gtk/menuitem.h @@ -36,7 +36,7 @@ public: virtual const wxBitmap& GetBitmap() const { return m_bitmap; } // implementation - void SetMenuItem(GtkWidget *menuItem) { m_menuItem = menuItem; } + void SetMenuItem(GtkWidget *menuItem); GtkWidget *GetMenuItem() const { return m_menuItem; } void SetGtkLabel(); diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp index 898fb2f5f7..694c0d503a 100644 --- a/src/gtk/menu.cpp +++ b/src/gtk/menu.cpp @@ -597,9 +597,20 @@ wxMenuItem::wxMenuItem(wxMenu *parentMenu, wxMenuItem::~wxMenuItem() { + if (m_menuItem) + g_object_unref(m_menuItem); // don't delete menu items, the menus take care of that } +void wxMenuItem::SetMenuItem(GtkWidget* menuItem) +{ + if (m_menuItem) + g_object_unref(m_menuItem); + m_menuItem = menuItem; + if (menuItem) + g_object_ref(menuItem); +} + void wxMenuItem::SetItemLabel( const wxString& str ) { #if wxUSE_ACCEL -- 2.45.2