Merge lp:~dbusmenu-team/libdbusmenu/ubuntu into lp:~ubuntu-desktop/libdbusmenu/ubuntu

Proposed by Ted Gould
Status: Merged
Merged at revision: not available
Proposed branch: lp:~dbusmenu-team/libdbusmenu/ubuntu
Merge into: lp:~ubuntu-desktop/libdbusmenu/ubuntu
Diff against target: 641 lines
9 files modified
configure.ac (+3/-3)
debian/changelog (+34/-0)
libdbusmenu-glib/client.c (+58/-20)
libdbusmenu-glib/dbus-menu.xml (+1/-0)
libdbusmenu-glib/menuitem.c (+6/-4)
libdbusmenu-glib/menuitem.h (+1/-1)
libdbusmenu-glib/server.c (+27/-7)
libdbusmenu-glib/server.h (+1/-1)
po/Makefile.in.in (+0/-217)
To merge this branch: bzr merge lp:~dbusmenu-team/libdbusmenu/ubuntu
Reviewer Review Type Date Requested Status
DBus Menu Team Pending
Review via email: mp+12385@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

0.1.5

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'configure.ac'
--- configure.ac 2009-09-17 16:23:56 +0000
+++ configure.ac 2009-09-24 21:15:19 +0000
@@ -1,11 +1,11 @@
11
2AC_INIT(libdbusmenu, 0.1.4, ted@canonical.com)2AC_INIT(libdbusmenu, 0.1.5, ted@canonical.com)
3AC_COPYRIGHT([Copyright 2009 Canonical])3AC_COPYRIGHT([Copyright 2009 Canonical])
44
5AC_PREREQ(2.53)5AC_PREREQ(2.53)
66
7AM_CONFIG_HEADER(config.h)7AM_CONFIG_HEADER(config.h)
8AM_INIT_AUTOMAKE(libdbusmenu, 0.1.4)8AM_INIT_AUTOMAKE(libdbusmenu, 0.1.5)
99
10AM_MAINTAINER_MODE10AM_MAINTAINER_MODE
1111
@@ -66,7 +66,7 @@
66###########################66###########################
6767
68LIBDBUSMENU_CURRENT=068LIBDBUSMENU_CURRENT=0
69LIBDBUSMENU_REVISION=469LIBDBUSMENU_REVISION=5
70LIBDBUSMENU_AGE=070LIBDBUSMENU_AGE=0
7171
72AC_SUBST(LIBDBUSMENU_CURRENT)72AC_SUBST(LIBDBUSMENU_CURRENT)
7373
=== modified file 'debian/changelog'
--- debian/changelog 2009-09-17 20:08:02 +0000
+++ debian/changelog 2009-09-24 21:15:19 +0000
@@ -1,4 +1,38 @@
1<<<<<<< TREE
1libdbusmenu (0.1.4-0ubuntu1) karmic; urgency=low2libdbusmenu (0.1.4-0ubuntu1) karmic; urgency=low
3=======
4libdbusmenu (0.1.5-0ubuntu1~ppa1) karmic; urgency=low
5
6 * Upstream release 0.1.5
7
8 -- Ted Gould <ted@ubuntu.com> Thu, 24 Sep 2009 16:11:42 -0500
9
10libdbusmenu (0.1.4-0ubuntu2~ppa4) karmic; urgency=low
11
12 * Hooking up with trunk.
13
14 -- Ted Gould <ted@ubuntu.com> Thu, 24 Sep 2009 15:57:34 -0500
15
16libdbusmenu (0.1.4-0ubuntu2~ppa3) karmic; urgency=low
17
18 * Trying a revision ID
19
20 -- Ted Gould <ted@ubuntu.com> Mon, 21 Sep 2009 15:40:48 -0500
21
22libdbusmenu (0.1.4-0ubuntu2~ppa2) karmic; urgency=low
23
24 * Trying to double check the layout
25
26 -- Ted Gould <ted@ubuntu.com> Thu, 17 Sep 2009 16:14:16 -0500
27
28libdbusmenu (0.1.4-0ubuntu2~ppa1) karmic; urgency=low
29
30 * Signaling layout update on child moved
31
32 -- Ted Gould <ted@ubuntu.com> Thu, 17 Sep 2009 13:52:13 -0500
33
34libdbusmenu (0.1.4-0ubuntu1) UNRELEASED; urgency=low
35>>>>>>> MERGE-SOURCE
236
3 * Upstream release (LP: #432003)37 * Upstream release (LP: #432003)
4 - Applying a fix by not blocking if we're calling for the root. Everyone 38 - Applying a fix by not blocking if we're calling for the root. Everyone
539
=== modified file 'libdbusmenu-glib/client.c'
--- libdbusmenu-glib/client.c 2009-09-11 16:56:07 +0000
+++ libdbusmenu-glib/client.c 2009-09-24 21:15:19 +0000
@@ -67,6 +67,9 @@
67 DBusGProxy * propproxy;67 DBusGProxy * propproxy;
68 DBusGProxyCall * layoutcall;68 DBusGProxyCall * layoutcall;
6969
70 gint current_revision;
71 gint my_revision;
72
70 DBusGProxy * dbusproxy;73 DBusGProxy * dbusproxy;
7174
72 GHashTable * type_handlers;75 GHashTable * type_handlers;
@@ -91,13 +94,13 @@
91static void set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec);94static void set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec);
92static void get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec);95static void get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec);
93/* Private Funcs */96/* Private Funcs */
94static void layout_update (DBusGProxy * proxy, DbusmenuClient * client);97static void layout_update (DBusGProxy * proxy, gint revision, DbusmenuClient * client);
95static void id_prop_update (DBusGProxy * proxy, guint id, gchar * property, gchar * value, DbusmenuClient * client);98static void id_prop_update (DBusGProxy * proxy, guint id, gchar * property, gchar * value, DbusmenuClient * client);
96static void id_update (DBusGProxy * proxy, guint id, DbusmenuClient * client);99static void id_update (DBusGProxy * proxy, guint id, DbusmenuClient * client);
97static void build_proxies (DbusmenuClient * client);100static void build_proxies (DbusmenuClient * client);
98static guint parse_node_get_id (xmlNodePtr node);101static guint parse_node_get_id (xmlNodePtr node);
99static DbusmenuMenuitem * parse_layout_xml(DbusmenuClient * client, xmlNodePtr node, DbusmenuMenuitem * item, DbusmenuMenuitem * parent, DBusGProxy * proxy);102static DbusmenuMenuitem * parse_layout_xml(DbusmenuClient * client, xmlNodePtr node, DbusmenuMenuitem * item, DbusmenuMenuitem * parent, DBusGProxy * proxy);
100static void parse_layout (DbusmenuClient * client, const gchar * layout);103static gint parse_layout (DbusmenuClient * client, const gchar * layout);
101static void update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data);104static void update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data);
102static void update_layout (DbusmenuClient * client);105static void update_layout (DbusmenuClient * client);
103static void menuitem_get_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * error, gpointer data);106static void menuitem_get_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * error, gpointer data);
@@ -195,6 +198,9 @@
195 priv->propproxy = NULL;198 priv->propproxy = NULL;
196 priv->layoutcall = NULL;199 priv->layoutcall = NULL;
197200
201 priv->current_revision = 0;
202 priv->my_revision = 0;
203
198 priv->dbusproxy = NULL;204 priv->dbusproxy = NULL;
199205
200 priv->type_handlers = g_hash_table_new_full(g_str_hash, g_str_equal,206 priv->type_handlers = g_hash_table_new_full(g_str_hash, g_str_equal,
@@ -301,9 +307,13 @@
301307
302/* Annoying little wrapper to make the right function update */308/* Annoying little wrapper to make the right function update */
303static void309static void
304layout_update (DBusGProxy * proxy, DbusmenuClient * client)310layout_update (DBusGProxy * proxy, gint revision, DbusmenuClient * client)
305{311{
306 update_layout(client);312 DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
313 priv->current_revision = revision;
314 if (priv->current_revision > priv->my_revision) {
315 update_layout(client);
316 }
307 return;317 return;
308}318}
309319
@@ -467,7 +477,7 @@
467 priv->dbusproxy = NULL;477 priv->dbusproxy = NULL;
468 }478 }
469479
470 dbus_g_proxy_add_signal(priv->menuproxy, "LayoutUpdate", G_TYPE_INVALID);480 dbus_g_proxy_add_signal(priv->menuproxy, "LayoutUpdate", G_TYPE_INT, G_TYPE_INVALID);
471 dbus_g_proxy_connect_signal(priv->menuproxy, "LayoutUpdate", G_CALLBACK(layout_update), client, NULL);481 dbus_g_proxy_connect_signal(priv->menuproxy, "LayoutUpdate", G_CALLBACK(layout_update), client, NULL);
472482
473 dbus_g_object_register_marshaller(_dbusmenu_server_marshal_VOID__UINT_STRING_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);483 dbus_g_object_register_marshaller(_dbusmenu_server_marshal_VOID__UINT_STRING_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
@@ -482,6 +492,34 @@
482 return;492 return;
483}493}
484494
495/* Get the "revision" attribute of the node, parse it and
496 return it. Also we're checking to ensure the node
497 is a 'menu' here. */
498static gint
499parse_node_get_revision (xmlNodePtr node)
500{
501 if (g_strcmp0((gchar *)node->name, "menu") != 0) {
502 /* This kills some nodes early */
503 g_warning("XML Node is not 'menu' it is '%s'", node->name);
504 return 0;
505 }
506
507 xmlAttrPtr attrib;
508 for (attrib = node->properties; attrib != NULL; attrib = attrib->next) {
509 if (g_strcmp0((gchar *)attrib->name, "revision") == 0) {
510 if (attrib->children != NULL) {
511 guint revision = (guint)g_ascii_strtoull((gchar *)attrib->children->content, NULL, 10);
512 /* g_debug ("Found ID: %d", id); */
513 return revision;
514 }
515 break;
516 }
517 }
518
519 g_warning("Unable to find a revision on the node");
520 return 0;
521}
522
485/* Get the ID attribute of the node, parse it and523/* Get the ID attribute of the node, parse it and
486 return it. Also we're checking to ensure the node524 return it. Also we're checking to ensure the node
487 is a 'menu' here. */525 is a 'menu' here. */
@@ -671,7 +709,7 @@
671709
672/* Take the layout passed to us over DBus and turn it into710/* Take the layout passed to us over DBus and turn it into
673 a set of beautiful objects */711 a set of beautiful objects */
674static void712static gint
675parse_layout (DbusmenuClient * client, const gchar * layout)713parse_layout (DbusmenuClient * client, const gchar * layout)
676{714{
677 DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);715 DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
@@ -681,6 +719,7 @@
681 xmldoc = xmlReadMemory(layout, g_utf8_strlen(layout, 16*1024), "dbusmenu.xml", NULL, 0);719 xmldoc = xmlReadMemory(layout, g_utf8_strlen(layout, 16*1024), "dbusmenu.xml", NULL, 0);
682720
683 xmlNodePtr root = xmlDocGetRootElement(xmldoc);721 xmlNodePtr root = xmlDocGetRootElement(xmldoc);
722 gint revision = parse_node_get_revision(root);
684723
685 DbusmenuMenuitem * oldroot = priv->root;724 DbusmenuMenuitem * oldroot = priv->root;
686 priv->root = parse_layout_xml(client, root, priv->root, NULL, priv->menuproxy);725 priv->root = parse_layout_xml(client, root, priv->root, NULL, priv->menuproxy);
@@ -694,7 +733,7 @@
694 g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);733 g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);
695 }734 }
696735
697 return;736 return revision;
698}737}
699738
700/* When the layout property returns, here's where we take care of that. */739/* When the layout property returns, here's where we take care of that. */
@@ -716,11 +755,21 @@
716755
717 const gchar * xml = g_value_get_string(&value);756 const gchar * xml = g_value_get_string(&value);
718 /* g_debug("Got layout string: %s", xml); */757 /* g_debug("Got layout string: %s", xml); */
719 parse_layout(client, xml);758 gint rev = parse_layout(client, xml);
720759
760 if (rev == 0) {
761 g_warning("Unable to parse layout!");
762 return;
763 }
764
765 priv->my_revision = rev;
721 /* g_debug("Root is now: 0x%X", (unsigned int)priv->root); */766 /* g_debug("Root is now: 0x%X", (unsigned int)priv->root); */
722 g_signal_emit(G_OBJECT(client), signals[LAYOUT_UPDATED], 0, TRUE);767 g_signal_emit(G_OBJECT(client), signals[LAYOUT_UPDATED], 0, TRUE);
723768
769 if (priv->my_revision < priv->current_revision) {
770 update_layout(client);
771 }
772
724 return;773 return;
725}774}
726775
@@ -803,17 +852,6 @@
803 return NULL;852 return NULL;
804 }853 }
805854
806#if 0
807/* Seems to be a bug in dbus-glib that assert here, I think because
808 multiple people try and grab it. We're going to comment this out
809 for now as everyone should be listening to the root changed signal
810 anyway. */
811 if (priv->layoutcall != NULL) {
812 /* Will end the current call and block on it's completion */
813 update_layout_cb(priv->propproxy, priv->layoutcall, client);
814 }
815#endif
816
817 return priv->root;855 return priv->root;
818}856}
819857
820858
=== modified file 'libdbusmenu-glib/dbus-menu.xml'
--- libdbusmenu-glib/dbus-menu.xml 2009-05-15 20:03:35 +0000
+++ libdbusmenu-glib/dbus-menu.xml 2009-09-24 21:15:19 +0000
@@ -57,6 +57,7 @@
57 <arg type="u" name="id" direction="out" />57 <arg type="u" name="id" direction="out" />
58 </signal>58 </signal>
59 <signal name="LayoutUpdate">59 <signal name="LayoutUpdate">
60 <arg type="i" name="revision" direction="out" />
60 </signal>61 </signal>
6162
62<!-- End of interesting stuff -->63<!-- End of interesting stuff -->
6364
=== modified file 'libdbusmenu-glib/menuitem.c'
--- libdbusmenu-glib/menuitem.c 2009-08-25 16:16:26 +0000
+++ libdbusmenu-glib/menuitem.c 2009-09-24 21:15:19 +0000
@@ -806,6 +806,7 @@
806 dbusmenu_menuitem_buildxml:806 dbusmenu_menuitem_buildxml:
807 @mi: #DbusmenuMenuitem to represent in XML807 @mi: #DbusmenuMenuitem to represent in XML
808 @array: A list of string that will be turned into an XML file808 @array: A list of string that will be turned into an XML file
809 @revision: The revision of the layout to embed in the XML
809810
810 This function will add strings to the array @array. It will put811 This function will add strings to the array @array. It will put
811 at least one entry if this menu item has no children. If it has812 at least one entry if this menu item has no children. If it has
@@ -814,17 +815,18 @@
814 children to place their own tags in the array in between those two.815 children to place their own tags in the array in between those two.
815*/816*/
816void817void
817dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array)818dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision)
818{819{
819 g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));820 g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));
820821
821 GList * children = dbusmenu_menuitem_get_children(mi);822 GList * children = dbusmenu_menuitem_get_children(mi);
823 /* TODO: Only put revision info in the root node. Save some bandwidth. */
822 if (children == NULL) {824 if (children == NULL) {
823 g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" />", dbusmenu_menuitem_get_id(mi)));825 g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\" />", dbusmenu_menuitem_get_id(mi), revision));
824 } else {826 } else {
825 g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\">", dbusmenu_menuitem_get_id(mi)));827 g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\">", dbusmenu_menuitem_get_id(mi), revision));
826 for ( ; children != NULL; children = children->next) {828 for ( ; children != NULL; children = children->next) {
827 dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array);829 dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array, revision);
828 }830 }
829 g_ptr_array_add(array, g_strdup("</menu>"));831 g_ptr_array_add(array, g_strdup("</menu>"));
830 }832 }
831833
=== modified file 'libdbusmenu-glib/menuitem.h'
--- libdbusmenu-glib/menuitem.h 2009-09-02 14:48:52 +0000
+++ libdbusmenu-glib/menuitem.h 2009-09-24 21:15:19 +0000
@@ -136,7 +136,7 @@
136void dbusmenu_menuitem_set_root (DbusmenuMenuitem * mi, gboolean root);136void dbusmenu_menuitem_set_root (DbusmenuMenuitem * mi, gboolean root);
137gboolean dbusmenu_menuitem_get_root (DbusmenuMenuitem * mi);137gboolean dbusmenu_menuitem_get_root (DbusmenuMenuitem * mi);
138138
139void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array);139void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision);
140void dbusmenu_menuitem_foreach (DbusmenuMenuitem * mi, void (*func) (DbusmenuMenuitem * mi, gpointer data), gpointer data);140void dbusmenu_menuitem_foreach (DbusmenuMenuitem * mi, void (*func) (DbusmenuMenuitem * mi, gpointer data), gpointer data);
141void dbusmenu_menuitem_activate (DbusmenuMenuitem * mi);141void dbusmenu_menuitem_activate (DbusmenuMenuitem * mi);
142142
143143
=== modified file 'libdbusmenu-glib/server.c'
--- libdbusmenu-glib/server.c 2009-07-01 05:36:24 +0000
+++ libdbusmenu-glib/server.c 2009-09-24 21:15:19 +0000
@@ -47,6 +47,7 @@
47{47{
48 DbusmenuMenuitem * root;48 DbusmenuMenuitem * root;
49 gchar * dbusobject;49 gchar * dbusobject;
50 gint layout_revision;
50};51};
5152
52#define DBUSMENU_SERVER_GET_PRIVATE(o) \53#define DBUSMENU_SERVER_GET_PRIVATE(o) \
@@ -142,6 +143,8 @@
142 /**143 /**
143 DbusmenuServer::layout-update:144 DbusmenuServer::layout-update:
144 @arg0: The #DbusmenuServer emitting the signal.145 @arg0: The #DbusmenuServer emitting the signal.
146 @arg1: A revision number representing which revision the update
147 represents itself as.
145148
146 This signal is emitted any time the layout of the149 This signal is emitted any time the layout of the
147 menuitems under this server is changed.150 menuitems under this server is changed.
@@ -151,8 +154,8 @@
151 G_SIGNAL_RUN_LAST,154 G_SIGNAL_RUN_LAST,
152 G_STRUCT_OFFSET(DbusmenuServerClass, layout_update),155 G_STRUCT_OFFSET(DbusmenuServerClass, layout_update),
153 NULL, NULL,156 NULL, NULL,
154 g_cclosure_marshal_VOID__VOID,157 g_cclosure_marshal_VOID__INT,
155 G_TYPE_NONE, 0);158 G_TYPE_NONE, 1, G_TYPE_INT);
156159
157160
158 g_object_class_install_property (object_class, PROP_DBUS_OBJECT,161 g_object_class_install_property (object_class, PROP_DBUS_OBJECT,
@@ -183,6 +186,7 @@
183186
184 priv->root = NULL;187 priv->root = NULL;
185 priv->dbusobject = NULL;188 priv->dbusobject = NULL;
189 priv->layout_revision = 1;
186190
187 return;191 return;
188}192}
@@ -235,7 +239,8 @@
235 } else {239 } else {
236 g_debug("Setting root node to NULL");240 g_debug("Setting root node to NULL");
237 }241 }
238 g_signal_emit(obj, signals[LAYOUT_UPDATE], 0, TRUE);242 priv->layout_revision++;
243 g_signal_emit(obj, signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
239 break;244 break;
240 case PROP_LAYOUT:245 case PROP_LAYOUT:
241 /* Can't set this, fall through to error */246 /* Can't set this, fall through to error */
@@ -275,9 +280,9 @@
275 GPtrArray * xmlarray = g_ptr_array_new();280 GPtrArray * xmlarray = g_ptr_array_new();
276 if (priv->root == NULL) {281 if (priv->root == NULL) {
277 /* g_debug("Getting layout without root node!"); */282 /* g_debug("Getting layout without root node!"); */
278 g_ptr_array_add(xmlarray, g_strdup("<menu />"));283 g_ptr_array_add(xmlarray, g_strdup_printf("<menu revision=\"%d\" />", priv->layout_revision));
279 } else {284 } else {
280 dbusmenu_menuitem_buildxml(priv->root, xmlarray);285 dbusmenu_menuitem_buildxml(priv->root, xmlarray, priv->layout_revision);
281 }286 }
282 g_ptr_array_add(xmlarray, NULL);287 g_ptr_array_add(xmlarray, NULL);
283288
@@ -310,7 +315,9 @@
310{315{
311 menuitem_signals_create(child, server);316 menuitem_signals_create(child, server);
312 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */317 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */
313 g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, TRUE);318 DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
319 priv->layout_revision++;
320 g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
314 return;321 return;
315}322}
316323
@@ -319,7 +326,18 @@
319{326{
320 menuitem_signals_remove(child, server);327 menuitem_signals_remove(child, server);
321 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */328 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */
322 g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, TRUE);329 DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
330 priv->layout_revision++;
331 g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
332 return;
333}
334
335static void
336menuitem_child_moved (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint newpos, guint oldpos, DbusmenuServer * server)
337{
338 DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
339 priv->layout_revision++;
340 g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
323 return;341 return;
324}342}
325343
@@ -330,6 +348,7 @@
330{348{
331 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(menuitem_child_added), data);349 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(menuitem_child_added), data);
332 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(menuitem_child_removed), data);350 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(menuitem_child_removed), data);
351 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(menuitem_child_moved), data);
333 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(menuitem_property_changed), data);352 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(menuitem_property_changed), data);
334 return;353 return;
335}354}
@@ -341,6 +360,7 @@
341{360{
342 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_added), data);361 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_added), data);
343 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_removed), data);362 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_removed), data);
363 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_moved), data);
344 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_property_changed), data);364 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_property_changed), data);
345 return;365 return;
346}366}
347367
=== modified file 'libdbusmenu-glib/server.h'
--- libdbusmenu-glib/server.h 2009-05-12 15:31:59 +0000
+++ libdbusmenu-glib/server.h 2009-09-24 21:15:19 +0000
@@ -71,7 +71,7 @@
71 /* Signals */71 /* Signals */
72 void (*id_prop_update)(guint id, gchar * property, gchar * value);72 void (*id_prop_update)(guint id, gchar * property, gchar * value);
73 void (*id_update)(guint id);73 void (*id_update)(guint id);
74 void (*layout_update)(void);74 void (*layout_update)(gint revision);
7575
76 /* Reserved */76 /* Reserved */
77 void (*dbusmenu_server_reserved1)(void);77 void (*dbusmenu_server_reserved1)(void);
7878
=== removed file 'po/Makefile.in.in'
--- po/Makefile.in.in 2009-08-20 17:55:36 +0000
+++ po/Makefile.in.in 1970-01-01 00:00:00 +0000
@@ -1,217 +0,0 @@
1# Makefile for program source directory in GNU NLS utilities package.
2# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
3# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
4#
5# This file may be copied and used freely without restrictions. It may
6# be used in projects which are not available under a GNU Public License,
7# but which still want to provide support for the GNU gettext functionality.
8#
9# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
10# instead of PACKAGE and to look for po2tbl in ./ not in intl/
11#
12# - Modified by jacob berkman <jacob@ximian.com> to install
13# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
14#
15# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
16#
17# We have the following line for use by intltoolize:
18# INTLTOOL_MAKEFILE
19
20GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
21PACKAGE = @PACKAGE@
22VERSION = @VERSION@
23
24SHELL = @SHELL@
25
26srcdir = @srcdir@
27top_srcdir = @top_srcdir@
28top_builddir = @top_builddir@
29VPATH = @srcdir@
30
31prefix = @prefix@
32exec_prefix = @exec_prefix@
33datadir = @datadir@
34datarootdir = @datarootdir@
35libdir = @libdir@
36DATADIRNAME = @DATADIRNAME@
37itlocaledir = $(prefix)/$(DATADIRNAME)/locale
38subdir = po
39install_sh = @install_sh@
40# Automake >= 1.8 provides @mkdir_p@.
41# Until it can be supposed, use the safe fallback:
42mkdir_p = $(install_sh) -d
43
44INSTALL = @INSTALL@
45INSTALL_DATA = @INSTALL_DATA@
46
47GMSGFMT = @GMSGFMT@
48MSGFMT = @MSGFMT@
49XGETTEXT = @XGETTEXT@
50INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
51INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
52MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
53GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
54
55ALL_LINGUAS = @ALL_LINGUAS@
56
57PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
58
59USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
60
61USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
62
63POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
64
65DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
66EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
67
68POTFILES = \
69# This comment gets stripped out
70
71CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
72
73.SUFFIXES:
74.SUFFIXES: .po .pox .gmo .mo .msg .cat
75
76.po.pox:
77 $(MAKE) $(GETTEXT_PACKAGE).pot
78 $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
79
80.po.mo:
81 $(MSGFMT) -o $@ $<
82
83.po.gmo:
84 file=`echo $* | sed 's,.*/,,'`.gmo \
85 && rm -f $$file && $(GMSGFMT) -o $$file $<
86
87.po.cat:
88 sed -f ../intl/po2msg.sed < $< > $*.msg \
89 && rm -f $@ && gencat $@ $*.msg
90
91
92all: all-@USE_NLS@
93
94all-yes: $(CATALOGS)
95all-no:
96
97$(GETTEXT_PACKAGE).pot: $(POTFILES)
98 $(GENPOT)
99
100install: install-data
101install-data: install-data-@USE_NLS@
102install-data-no: all
103install-data-yes: all
104 linguas="$(USE_LINGUAS)"; \
105 for lang in $$linguas; do \
106 dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
107 $(mkdir_p) $$dir; \
108 if test -r $$lang.gmo; then \
109 $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
110 echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
111 else \
112 $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
113 echo "installing $(srcdir)/$$lang.gmo as" \
114 "$$dir/$(GETTEXT_PACKAGE).mo"; \
115 fi; \
116 if test -r $$lang.gmo.m; then \
117 $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
118 echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
119 else \
120 if test -r $(srcdir)/$$lang.gmo.m ; then \
121 $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
122 $$dir/$(GETTEXT_PACKAGE).mo.m; \
123 echo "installing $(srcdir)/$$lang.gmo.m as" \
124 "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
125 else \
126 true; \
127 fi; \
128 fi; \
129 done
130
131# Empty stubs to satisfy archaic automake needs
132dvi info tags TAGS ID:
133
134# Define this as empty until I found a useful application.
135install-exec installcheck:
136
137uninstall:
138 linguas="$(USE_LINGUAS)"; \
139 for lang in $$linguas; do \
140 rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
141 rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
142 done
143
144check: all $(GETTEXT_PACKAGE).pot
145 rm -f missing notexist
146 srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
147 if [ -r missing -o -r notexist ]; then \
148 exit 1; \
149 fi
150
151mostlyclean:
152 rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
153 rm -f .intltool-merge-cache
154
155clean: mostlyclean
156
157distclean: clean
158 rm -f Makefile Makefile.in POTFILES stamp-it
159 rm -f *.mo *.msg *.cat *.cat.m *.gmo
160
161maintainer-clean: distclean
162 @echo "This command is intended for maintainers to use;"
163 @echo "it deletes files that may require special tools to rebuild."
164 rm -f Makefile.in.in
165
166distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
167dist distdir: $(DISTFILES)
168 dists="$(DISTFILES)"; \
169 extra_dists="$(EXTRA_DISTFILES)"; \
170 for file in $$extra_dists; do \
171 test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
172 done; \
173 for file in $$dists; do \
174 test -f $$file || file="$(srcdir)/$$file"; \
175 ln $$file $(distdir) 2> /dev/null \
176 || cp -p $$file $(distdir); \
177 done
178
179update-po: Makefile
180 $(MAKE) $(GETTEXT_PACKAGE).pot
181 tmpdir=`pwd`; \
182 linguas="$(USE_LINGUAS)"; \
183 for lang in $$linguas; do \
184 echo "$$lang:"; \
185 result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
186 if $$result; then \
187 if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
188 rm -f $$tmpdir/$$lang.new.po; \
189 else \
190 if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
191 :; \
192 else \
193 echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
194 rm -f $$tmpdir/$$lang.new.po; \
195 exit 1; \
196 fi; \
197 fi; \
198 else \
199 echo "msgmerge for $$lang.gmo failed!"; \
200 rm -f $$tmpdir/$$lang.new.po; \
201 fi; \
202 done
203
204Makefile POTFILES: stamp-it
205 @if test ! -f $@; then \
206 rm -f stamp-it; \
207 $(MAKE) stamp-it; \
208 fi
209
210stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
211 cd $(top_builddir) \
212 && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
213 $(SHELL) ./config.status
214
215# Tell versions [3.59,3.63) of GNU make not to export all variables.
216# Otherwise a system limit (for SysV at least) may be exceeded.
217.NOEXPORT:

Subscribers

People subscribed via source and target branches

to all changes: