aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorKen VanDine <ken.vandine@canonical.com>2009-10-05 01:38:17 -0400
committerKen VanDine <ken.vandine@canonical.com>2009-10-05 01:38:17 -0400
commit2161c05f527d0d8e36410628214a7d920de66044 (patch)
tree3199325d538b75b07a0083f043573bd0de92a811 /libdbusmenu-glib/menuitem.c
parent29a1c8d0b290c9d131f9f22418d93066953b3460 (diff)
parent3f51b2b3f1550026d7b0af2dbbe007af6e89e302 (diff)
downloadlibdbusmenu-2161c05f527d0d8e36410628214a7d920de66044.tar.gz
libdbusmenu-2161c05f527d0d8e36410628214a7d920de66044.tar.bz2
libdbusmenu-2161c05f527d0d8e36410628214a7d920de66044.zip
* Upstream release 0.1.6 (LP: #442822)
* Managing the life-cycle of the GTK Menu item better to ensure that it is positioned correctly and dies appropriately. (LP: #430904) and (LP: #419953) * Checking returned properties to ensure that there wasn't DBus errors. (LP: #433719)
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 0c44e3c..fdf5608 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -32,6 +32,11 @@ License version 3 and version 2.1 along with this program. If not, see
#include "menuitem.h"
#include "menuitem-marshal.h"
+#ifdef MASSIVEDEBUGGING
+#define LABEL(x) dbusmenu_menuitem_property_get(DBUSMENU_MENUITEM(x), DBUSMENU_MENUITEM_PROP_LABEL)
+#define ID(x) dbusmenu_menuitem_get_id(DBUSMENU_MENUITEM(x))
+#endif
+
/* Private */
/**
DbusmenuMenuitemPrivate:
@@ -362,6 +367,9 @@ dbusmenu_menuitem_get_children (DbusmenuMenuitem * mi)
static void
take_children_signal (gpointer data, gpointer user_data)
{
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child removed %d (%s)", ID(user_data), LABEL(user_data), ID(data), LABEL(data));
+ #endif
g_signal_emit(G_OBJECT(user_data), signals[CHILD_REMOVED], 0, DBUSMENU_MENUITEM(data), TRUE);
return;
}
@@ -404,6 +412,11 @@ dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi)
guint
dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent)
{
+ #ifdef MASSIVEDEBUGGING
+ if (!DBUSMENU_IS_MENUITEM(mi)) g_warning("Getting position of %d (%s), it's at: %d (mi fail)", ID(mi), LABEL(mi), 0);
+ if (!DBUSMENU_IS_MENUITEM(parent)) g_warning("Getting position of %d (%s), it's at: %d (parent fail)", ID(mi), LABEL(mi), 0);
+ #endif
+
/* TODO: I'm not too happy returning zeros here. But that's all I've got */
g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), 0);
g_return_val_if_fail(DBUSMENU_IS_MENUITEM(parent), 0);
@@ -417,6 +430,10 @@ dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent
if (childs == NULL) return 0;
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Getting position of %d (%s), it's at: %d", ID(mi), LABEL(mi), count);
+ #endif
+
return count;
}
@@ -438,6 +455,9 @@ dbusmenu_menuitem_child_append (DbusmenuMenuitem * mi, DbusmenuMenuitem * child)
DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
priv->children = g_list_append(priv->children, child);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child added %d (%s) at %d", ID(mi), LABEL(mi), ID(child), LABEL(child), g_list_length(priv->children) - 1);
+ #endif
g_signal_emit(G_OBJECT(mi), signals[CHILD_ADDED], 0, child, g_list_length(priv->children) - 1, TRUE);
return TRUE;
}
@@ -460,6 +480,9 @@ dbusmenu_menuitem_child_prepend (DbusmenuMenuitem * mi, DbusmenuMenuitem * child
DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
priv->children = g_list_prepend(priv->children, child);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child added %d (%s) at %d", ID(mi), LABEL(mi), ID(child), LABEL(child), 0);
+ #endif
g_signal_emit(G_OBJECT(mi), signals[CHILD_ADDED], 0, child, 0, TRUE);
return TRUE;
}
@@ -483,6 +506,9 @@ dbusmenu_menuitem_child_delete (DbusmenuMenuitem * mi, DbusmenuMenuitem * child)
DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
priv->children = g_list_remove(priv->children, child);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child removed %d (%s)", ID(mi), LABEL(mi), ID(child), LABEL(child));
+ #endif
g_signal_emit(G_OBJECT(mi), signals[CHILD_REMOVED], 0, child, TRUE);
return TRUE;
}
@@ -507,6 +533,9 @@ dbusmenu_menuitem_child_add_position (DbusmenuMenuitem * mi, DbusmenuMenuitem *
DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
priv->children = g_list_insert(priv->children, child, position);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child added %d (%s) at %d", ID(mi), LABEL(mi), ID(child), LABEL(child), position);
+ #endif
g_signal_emit(G_OBJECT(mi), signals[CHILD_ADDED], 0, child, position, TRUE);
return TRUE;
}
@@ -543,6 +572,9 @@ dbusmenu_menuitem_child_reorder(DbusmenuMenuitem * mi, DbusmenuMenuitem * child,
priv->children = g_list_remove(priv->children, child);
priv->children = g_list_insert(priv->children, child, position);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling child %d (%s) moved from %d to %d", ID(mi), LABEL(mi), ID(child), LABEL(child), oldpos, position);
+ #endif
g_signal_emit(G_OBJECT(mi), signals[CHILD_MOVED], 0, child, position, oldpos, TRUE);
return TRUE;
@@ -658,6 +690,9 @@ dbusmenu_menuitem_property_set (DbusmenuMenuitem * mi, const gchar * property, c
gchar * lval = g_strdup(value);
g_hash_table_insert(priv->properties, lprop, lval);
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) signalling property '%s' changed to '%s'", ID(mi), LABEL(mi), property, g_utf8_strlen(value, 50) < 25 ? value : "<too long>");
+ #endif
g_signal_emit(G_OBJECT(mi), signals[PROPERTY_CHANGED], 0, property, value, TRUE);
return TRUE;
@@ -882,6 +917,9 @@ void
dbusmenu_menuitem_activate (DbusmenuMenuitem * mi)
{
g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));
+ #ifdef MASSIVEDEBUGGING
+ g_debug("Menuitem %d (%s) activated", ID(mi), LABEL(mi));
+ #endif
g_signal_emit(G_OBJECT(mi), signals[ITEM_ACTIVATED], 0, TRUE);
return;
}