summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Schermer <nickschermer@gmail.com>2009-01-02 11:30:34 +0000
committerNick Schermer <nickschermer@gmail.com>2009-01-02 11:30:34 +0000
commit66ffe1a70f12acda3a487e8036fad452f374fb18 (patch)
tree5fbf32caf01dd0c961c2ca1e5ec4946ce2e29dd3
parent9c6a25be13981831d6506efc6ff9506150dccb34 (diff)
downloadgarcon-66ffe1a70f12acda3a487e8036fad452f374fb18.tar.gz
* libxfce4menu/xfce-menu-item-cache.c,
libxfce4menu/xfce-menu-separator.c: Add weak pointer to XfceMenuItemCache and XfceMenuSeparator so you can init and shutdown the library multiple times without running into trouble. * NEWS: Update. git-svn-id: https://svn.xfce.org/svn/xfce/libxfce4menu/trunk@29074 a0aa69c2-05f4-0310-b83c-d5d913b14636
-rw-r--r--ChangeLog8
-rw-r--r--NEWS5
-rw-r--r--libxfce4menu/xfce-menu-item-cache.c6
-rw-r--r--libxfce4menu/xfce-menu-separator.c5
4 files changed, 22 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a557cdf..b730b56 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-01-02 Nick Schermer <nick@xfce.org>
+
+ * libxfce4menu/xfce-menu-item-cache.c,
+ libxfce4menu/xfce-menu-separator.c: Add weak pointer to
+ XfceMenuItemCache and XfceMenuSeparator so you can init and shutdown
+ the library multiple times without running into trouble.
+ * NEWS: Update.
+
2008-12-06 Jannis Pohlmann <jannis@xfce.org>
* configure.in.in: Re-add svn version tag.
diff --git a/NEWS b/NEWS
index c5c5a6b..acfc23e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+4.5.93
+======
+- Add weak pointers to the XfceMenuItemCache and XfceMenuSeparator objects
+ to you can run xfce_menu_init() and xfce_menu_shutdown() multiple times.
+
4.5.92
======
- Translations: ca, da, ku, nb_NO, sq, tr.
diff --git a/libxfce4menu/xfce-menu-item-cache.c b/libxfce4menu/xfce-menu-item-cache.c
index 3b5b5a7..85afa14 100644
--- a/libxfce4menu/xfce-menu-item-cache.c
+++ b/libxfce4menu/xfce-menu-item-cache.c
@@ -80,7 +80,10 @@ void
_xfce_menu_item_cache_init (void)
{
if (G_LIKELY (_xfce_menu_item_cache == NULL))
- _xfce_menu_item_cache = g_object_new (XFCE_TYPE_MENU_ITEM_CACHE, NULL);
+ {
+ _xfce_menu_item_cache = g_object_new (XFCE_TYPE_MENU_ITEM_CACHE, NULL);
+ g_object_add_weak_pointer (G_OBJECT (_xfce_menu_item_cache), (gpointer) &_xfce_menu_item_cache);
+ }
}
@@ -90,6 +93,7 @@ _xfce_menu_item_cache_shutdown (void)
{
if (G_LIKELY (_xfce_menu_item_cache != NULL))
g_object_unref (G_OBJECT (_xfce_menu_item_cache));
+
}
diff --git a/libxfce4menu/xfce-menu-separator.c b/libxfce4menu/xfce-menu-separator.c
index 443b9a0..8cdc3d8 100644
--- a/libxfce4menu/xfce-menu-separator.c
+++ b/libxfce4menu/xfce-menu-separator.c
@@ -45,7 +45,10 @@ void
_xfce_menu_separator_init (void)
{
if (G_LIKELY (_xfce_menu_separator == NULL))
- _xfce_menu_separator = g_object_new (XFCE_TYPE_MENU_SEPARATOR, NULL);
+ {
+ _xfce_menu_separator = g_object_new (XFCE_TYPE_MENU_SEPARATOR, NULL);
+ g_object_add_weak_pointer (G_OBJECT (_xfce_menu_separator), (gpointer) &_xfce_menu_separator);
+ }
}