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

Proposed by Ted Gould
Status: Merged
Merged at revision: 144
Proposed branch: lp:~dbusmenu-team/libdbusmenu/ubuntu
Merge into: lp:~ubuntu-desktop/libdbusmenu/ubuntu
Diff against target: 527 lines (+152/-62)
14 files modified
ChangeLog (+56/-0)
configure (+11/-11)
configure.ac (+3/-3)
debian/changelog (+11/-2)
docs/libdbusmenu-glib/reference/html/ch01.html (+1/-1)
docs/libdbusmenu-glib/reference/version.xml (+1/-1)
docs/libdbusmenu-gtk/reference/html/ch01.html (+1/-1)
docs/libdbusmenu-gtk/reference/version.xml (+1/-1)
libdbusmenu-glib/client-menuitem.c (+1/-1)
libdbusmenu-glib/client-private.h (+2/-1)
libdbusmenu-glib/client.c (+1/-2)
libdbusmenu-gtk/client.c (+6/-25)
libdbusmenu-gtk/menu.c (+14/-0)
libdbusmenu-gtk/parser.c (+43/-13)
To merge this branch: bzr merge lp:~dbusmenu-team/libdbusmenu/ubuntu
Reviewer Review Type Date Requested Status
Ken VanDine Pending
Review via email: mp+57791@code.launchpad.net

Description of the change

Last one!

To post a comment you must log in.
lp:~dbusmenu-team/libdbusmenu/ubuntu updated
144. By Ken VanDine

releasing version 0.4.3-0ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ChangeLog'
2--- ChangeLog 2011-04-07 15:24:32 +0000
3+++ ChangeLog 2011-04-14 21:52:53 +0000
4@@ -1,5 +1,61 @@
5 # Generated by Makefile. Do not edit.
6
7+2011-04-14 Ted Gould <ted@gould.cx>
8+
9+ 0.4.3
10+
11+2011-04-12 Ted Gould <ted@gould.cx>
12+
13+ Handle cases of labels being added later
14+
15+2011-04-12 Michael Terry <mike@mterry.name>
16+
17+ watch empty/separator menu items for any added GtkLabel children, as gnome-commander likes to do
18+
19+2011-04-12 Ted Gould <ted@gould.cx>
20+
21+ Changing the cleanup of GTK Menuitems to avoid undefined references.
22+
23+2011-04-10 Ted Gould <ted@gould.cx>
24+
25+ Ensuring all the menus are hidden before unref'ing root
26+
27+2011-04-10 Ted Gould <ted@gould.cx>
28+
29+ Passing the menuitem instead of finding it.
30+
31+2011-04-10 Ted Gould <ted@gould.cx>
32+
33+ Protecting the label with the null check and don't unref something that shouldn't be.
34+
35+2011-04-10 Ted Gould <ted@gould.cx>
36+
37+ Attaching the data in a way that it'll cleanup itself
38+
39+2011-04-07 Ted Gould <ted@gould.cx>
40+
41+ Attaching bug
42+
43+2011-04-07 Ted Gould <ted@gould.cx>
44+
45+ We have to destroy, why? Because we want to make sure that the menu having a ref doesn't block us from getting rid of the item.
46+
47+2011-04-07 Ted Gould <ted@gould.cx>
48+
49+ Switching the reference to the GTK Menuitem to be a _sink as well as using set_data_full() instead of a weak ref for unref'ing it.
50+
51+2011-04-12 Ted Gould <ted@gould.cx>
52+
53+ Ensure that we gaurantee the open/clicked/closed event ordering.
54+
55+2011-04-08 Michael Terry <mike@mterry.name>
56+
57+ guard against an activation that does not actually have an associated menu-hide
58+
59+2011-04-07 Michael Terry <mike@mterry.name>
60+
61+ force activated event to be sandwiched by opened/closed events
62+
63 2011-04-07 Ted Gould <ted@gould.cx>
64
65 0.4.2
66
67=== modified file 'configure'
68--- configure 2011-04-07 15:26:05 +0000
69+++ configure 2011-04-14 21:52:53 +0000
70@@ -1,6 +1,6 @@
71 #! /bin/sh
72 # Guess values for system-dependent variables and create Makefiles.
73-# Generated by GNU Autoconf 2.67 for libdbusmenu 0.4.2.
74+# Generated by GNU Autoconf 2.67 for libdbusmenu 0.4.3.
75 #
76 # Report bugs to <ted@canonical.com>.
77 #
78@@ -703,8 +703,8 @@
79 # Identity of this package.
80 PACKAGE_NAME='libdbusmenu'
81 PACKAGE_TARNAME='libdbusmenu'
82-PACKAGE_VERSION='0.4.2'
83-PACKAGE_STRING='libdbusmenu 0.4.2'
84+PACKAGE_VERSION='0.4.3'
85+PACKAGE_STRING='libdbusmenu 0.4.3'
86 PACKAGE_BUGREPORT='ted@canonical.com'
87 PACKAGE_URL=''
88
89@@ -1541,7 +1541,7 @@
90 # Omit some internal or obsolete options to make the list less imposing.
91 # This message is too long to be a string in the A/UX 3.1 sh.
92 cat <<_ACEOF
93-\`configure' configures libdbusmenu 0.4.2 to adapt to many kinds of systems.
94+\`configure' configures libdbusmenu 0.4.3 to adapt to many kinds of systems.
95
96 Usage: $0 [OPTION]... [VAR=VALUE]...
97
98@@ -1611,7 +1611,7 @@
99
100 if test -n "$ac_init_help"; then
101 case $ac_init_help in
102- short | recursive ) echo "Configuration of libdbusmenu 0.4.2:";;
103+ short | recursive ) echo "Configuration of libdbusmenu 0.4.3:";;
104 esac
105 cat <<\_ACEOF
106
107@@ -1751,7 +1751,7 @@
108 test -n "$ac_init_help" && exit $ac_status
109 if $ac_init_version; then
110 cat <<\_ACEOF
111-libdbusmenu configure 0.4.2
112+libdbusmenu configure 0.4.3
113 generated by GNU Autoconf 2.67
114
115 Copyright (C) 2010 Free Software Foundation, Inc.
116@@ -2122,7 +2122,7 @@
117 This file contains any messages produced by compilers while
118 running configure, to aid debugging if configure makes a mistake.
119
120-It was created by libdbusmenu $as_me 0.4.2, which was
121+It was created by libdbusmenu $as_me 0.4.3, which was
122 generated by GNU Autoconf 2.67. Invocation command line was
123
124 $ $0 $@
125@@ -2943,7 +2943,7 @@
126
127 # Define the identity of the package.
128 PACKAGE=libdbusmenu
129- VERSION=0.4.2
130+ VERSION=0.4.3
131
132
133 # Some tools Automake needs.
134@@ -13294,7 +13294,7 @@
135 ###########################
136
137 LIBDBUSMENU_CURRENT=3
138-LIBDBUSMENU_REVISION=13
139+LIBDBUSMENU_REVISION=14
140 LIBDBUSMENU_AGE=0
141
142
143@@ -14616,7 +14616,7 @@
144 # report actual input values of CONFIG_FILES etc. instead of their
145 # values after options handling.
146 ac_log="
147-This file was extended by libdbusmenu $as_me 0.4.2, which was
148+This file was extended by libdbusmenu $as_me 0.4.3, which was
149 generated by GNU Autoconf 2.67. Invocation command line was
150
151 CONFIG_FILES = $CONFIG_FILES
152@@ -14682,7 +14682,7 @@
153 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
154 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
155 ac_cs_version="\\
156-libdbusmenu config.status 0.4.2
157+libdbusmenu config.status 0.4.3
158 configured by $0, generated by GNU Autoconf 2.67,
159 with options \\"\$ac_cs_config\\"
160
161
162=== modified file 'configure.ac'
163--- configure.ac 2011-04-07 15:26:05 +0000
164+++ configure.ac 2011-04-14 21:52:53 +0000
165@@ -1,11 +1,11 @@
166
167-AC_INIT(libdbusmenu, 0.4.2, ted@canonical.com)
168+AC_INIT(libdbusmenu, 0.4.3, ted@canonical.com)
169 AC_COPYRIGHT([Copyright 2009,2010 Canonical])
170
171 AC_PREREQ(2.62)
172
173 AM_CONFIG_HEADER(config.h)
174-AM_INIT_AUTOMAKE(libdbusmenu, 0.4.2, [-Wno-portability])
175+AM_INIT_AUTOMAKE(libdbusmenu, 0.4.3, [-Wno-portability])
176
177 AM_MAINTAINER_MODE
178
179@@ -134,7 +134,7 @@
180 ###########################
181
182 LIBDBUSMENU_CURRENT=3
183-LIBDBUSMENU_REVISION=13
184+LIBDBUSMENU_REVISION=14
185 LIBDBUSMENU_AGE=0
186
187 AC_SUBST(LIBDBUSMENU_CURRENT)
188
189=== modified file 'debian/changelog'
190--- debian/changelog 2011-04-14 13:30:12 +0000
191+++ debian/changelog 2011-04-14 21:52:53 +0000
192@@ -1,5 +1,6 @@
193-libdbusmenu (0.4.2-0ubuntu4) UNRELEASED; urgency=low
194+libdbusmenu (0.4.3-0ubuntu1~ppa1) natty; urgency=low
195
196+ [ Ken VanDine ]
197 * debian/rules
198 - Fixed package names in build targets (LP: #760102)
199 - Dropped makeshlibs in favor of symbols files
200@@ -7,7 +8,15 @@
201 * +debian/libdbusmenu-gtk3-3.symbols
202 * +debian/libdbusmenu-gtk3.symbols
203
204- -- Ken VanDine <ken.vandine@canonical.com> Thu, 14 Apr 2011 09:27:03 -0400
205+ [ Ted Gould ]
206+ * New upstream release.
207+ ∘ Handle cases where labels are added later as subwidgets
208+ in the menuitem (LP: #758759)
209+ ∘ Fix the destruction of the attached GTK menuitem (LP: #746091)
210+ ∘ Guard against an activation that does not actually have an
211+ associated menu-hide (LP: #750588)
212+
213+ -- Ted Gould <ted@ubuntu.com> Thu, 14 Apr 2011 16:49:13 -0500
214
215 libdbusmenu (0.4.2-0ubuntu3) natty; urgency=low
216
217
218=== modified file 'docs/libdbusmenu-glib/reference/html/ch01.html'
219--- docs/libdbusmenu-glib/reference/html/ch01.html 2011-04-07 15:24:32 +0000
220+++ docs/libdbusmenu-glib/reference/html/ch01.html 2011-04-14 21:52:53 +0000
221@@ -21,7 +21,7 @@
222 </tr></table>
223 <div class="chapter">
224 <div class="titlepage"><div><div><h2 class="title">
225-<a name="id552681"></a>API</h2></div></div></div>
226+<a name="id540461"></a>API</h2></div></div></div>
227 <div class="toc"><dl>
228 <dt>
229 <span class="refentrytitle"><a href="libdbusmenu-glib-DbusmenuServer.html">DbusmenuServer</a></span><span class="refpurpose"> — The server signals changed and
230
231=== modified file 'docs/libdbusmenu-glib/reference/version.xml'
232--- docs/libdbusmenu-glib/reference/version.xml 2011-04-07 15:26:05 +0000
233+++ docs/libdbusmenu-glib/reference/version.xml 2011-04-14 21:52:53 +0000
234@@ -1,1 +1,1 @@
235-0.4.2
236+0.4.3
237
238=== modified file 'docs/libdbusmenu-gtk/reference/html/ch01.html'
239--- docs/libdbusmenu-gtk/reference/html/ch01.html 2011-04-07 15:24:32 +0000
240+++ docs/libdbusmenu-gtk/reference/html/ch01.html 2011-04-14 21:52:53 +0000
241@@ -21,7 +21,7 @@
242 </tr></table>
243 <div class="chapter">
244 <div class="titlepage"><div><div><h2 class="title">
245-<a name="id463422"></a>API</h2></div></div></div>
246+<a name="id403245"></a>API</h2></div></div></div>
247 <div class="toc"><dl>
248 <dt>
249 <span class="refentrytitle"><a href="libdbusmenu-gtk-DbusmenuGtkMenu.html">DbusmenuGtkMenu</a></span><span class="refpurpose"> — A GTK Menu Object that syncronizes over DBus</span>
250
251=== modified file 'docs/libdbusmenu-gtk/reference/version.xml'
252--- docs/libdbusmenu-gtk/reference/version.xml 2011-04-07 15:26:05 +0000
253+++ docs/libdbusmenu-gtk/reference/version.xml 2011-04-14 21:52:53 +0000
254@@ -1,1 +1,1 @@
255-0.4.2
256+0.4.3
257
258=== modified file 'libdbusmenu-glib/client-menuitem.c'
259--- libdbusmenu-glib/client-menuitem.c 2011-02-21 18:55:10 +0000
260+++ libdbusmenu-glib/client-menuitem.c 2011-04-14 21:52:53 +0000
261@@ -106,7 +106,7 @@
262 handle_event (DbusmenuMenuitem * mi, const gchar * name, GVariant * variant, guint timestamp)
263 {
264 DbusmenuClientMenuitemPrivate * priv = DBUSMENU_CLIENT_MENUITEM_GET_PRIVATE(mi);
265- dbusmenu_client_send_event(priv->client, dbusmenu_menuitem_get_id(mi), name, variant, timestamp);
266+ dbusmenu_client_send_event(priv->client, dbusmenu_menuitem_get_id(mi), name, variant, timestamp, mi);
267 return;
268 }
269
270
271=== modified file 'libdbusmenu-glib/client-private.h'
272--- libdbusmenu-glib/client-private.h 2011-02-21 18:55:10 +0000
273+++ libdbusmenu-glib/client-private.h 2011-04-14 21:52:53 +0000
274@@ -37,7 +37,8 @@
275 gint id,
276 const gchar * name,
277 GVariant * variant,
278- guint timestamp);
279+ guint timestamp,
280+ DbusmenuMenuitem * mi);
281 void dbusmenu_client_send_about_to_show(DbusmenuClient * client,
282 gint id,
283 void (*cb) (gpointer user_data),
284
285=== modified file 'libdbusmenu-glib/client.c'
286--- libdbusmenu-glib/client.c 2011-04-07 15:26:05 +0000
287+++ libdbusmenu-glib/client.c 2011-04-14 21:52:53 +0000
288@@ -1516,14 +1516,13 @@
289 /* Sends the event over DBus to the server on the other side
290 of the bus. */
291 void
292-dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name, GVariant * variant, guint timestamp)
293+dbusmenu_client_send_event (DbusmenuClient * client, gint id, const gchar * name, GVariant * variant, guint timestamp, DbusmenuMenuitem * mi)
294 {
295 g_return_if_fail(DBUSMENU_IS_CLIENT(client));
296 g_return_if_fail(id >= 0);
297 g_return_if_fail(name != NULL);
298
299 DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
300- DbusmenuMenuitem * mi = dbusmenu_menuitem_find_id(priv->root, id);
301 if (mi == NULL) {
302 g_warning("Asked to activate a menuitem %d that we don't know about", id);
303 return;
304
305=== modified file 'libdbusmenu-gtk/client.c'
306--- libdbusmenu-gtk/client.c 2011-04-08 21:23:37 +0000
307+++ libdbusmenu-gtk/client.c 2011-04-14 21:52:53 +0000
308@@ -690,7 +690,8 @@
309 } else {
310 /* We need to build a menu for these guys to live in. */
311 GtkMenu * menu = GTK_MENU(gtk_menu_new());
312- g_object_set_data(G_OBJECT(mi), data_menu, menu);
313+ g_object_ref_sink(menu);
314+ g_object_set_data_full(G_OBJECT(mi), data_menu, menu, g_object_unref);
315
316 gtk_menu_item_set_submenu(gmi, GTK_WIDGET(menu));
317
318@@ -735,19 +736,6 @@
319 return;
320 }
321
322-/* Call back that happens when the DbusmenuMenuitem
323- is destroyed. We're making sure to clean up everything
324- else down the pipe. */
325-static void
326-destoryed_dbusmenuitem_cb (gpointer udata, GObject * dbusmenuitem)
327-{
328- #ifdef MASSIVEDEBUGGING
329- g_debug("DbusmenuMenuitem was destroyed");
330- #endif
331- gtk_widget_destroy(GTK_WIDGET(udata));
332- return;
333-}
334-
335 /* The new menuitem signal only happens if we don't have a type handler
336 for the type of the item. This should be an error condition and we're
337 printing out a message. */
338@@ -850,11 +838,8 @@
339 #endif
340
341 /* Attach these two */
342- g_object_set_data(G_OBJECT(item), data_menuitem, gmi);
343- g_object_ref(G_OBJECT(gmi));
344- #ifdef MASSIVEDEBUGGING
345- g_signal_connect(G_OBJECT(gmi), "destroy", G_CALLBACK(destroy_gmi), item);
346- #endif
347+ g_object_ref_sink(G_OBJECT(gmi));
348+ g_object_set_data_full(G_OBJECT(item), data_menuitem, gmi, (GDestroyNotify)gtk_widget_destroy);
349
350 /* DbusmenuMenuitem signals */
351 g_signal_connect(G_OBJECT(item), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(menu_prop_change_cb), client);
352@@ -865,9 +850,6 @@
353 /* GtkMenuitem signals */
354 g_signal_connect(G_OBJECT(gmi), "activate", G_CALLBACK(menu_pressed_cb), item);
355
356- /* Life insurance */
357- g_object_weak_ref(G_OBJECT(item), destoryed_dbusmenuitem_cb, gmi);
358-
359 /* Check our set of props to see if any are set already */
360 process_visible(item, gmi, dbusmenu_menuitem_property_get_variant(item, DBUSMENU_MENUITEM_PROP_VISIBLE));
361 process_sensitive(item, gmi, dbusmenu_menuitem_property_get_variant(item, DBUSMENU_MENUITEM_PROP_ENABLED));
362@@ -920,7 +902,7 @@
363
364 if (menu != NULL) {
365 gtk_widget_destroy(GTK_WIDGET(menu));
366- g_object_set_data(G_OBJECT(mi), data_menu, NULL);
367+ g_object_steal_data(G_OBJECT(mi), data_menu);
368 }
369 }
370
371@@ -1024,11 +1006,10 @@
372
373 GtkMenuItem * gmi;
374 gmi = GTK_MENU_ITEM(g_object_new(GENERICMENUITEM_TYPE, NULL));
375- gtk_menu_item_set_label(gmi, dbusmenu_menuitem_property_get(newitem, DBUSMENU_MENUITEM_PROP_LABEL));
376
377 if (gmi != NULL) {
378+ gtk_menu_item_set_label(gmi, dbusmenu_menuitem_property_get(newitem, DBUSMENU_MENUITEM_PROP_LABEL));
379 dbusmenu_gtkclient_newitem_base(DBUSMENU_GTKCLIENT(client), newitem, gmi, parent);
380- g_object_unref(gmi);
381 } else {
382 return FALSE;
383 }
384
385=== modified file 'libdbusmenu-gtk/menu.c'
386--- libdbusmenu-gtk/menu.c 2011-02-21 20:13:29 +0000
387+++ libdbusmenu-gtk/menu.c 2011-04-14 21:52:53 +0000
388@@ -329,6 +329,18 @@
389 return;
390 }
391
392+/* Handler for all of the menu items on a root change to ensure that
393+ the menus are hidden before we start going and deleting things. */
394+static void
395+popdown_all (DbusmenuMenuitem * mi, gpointer user_data)
396+{
397+ GtkMenu * menu = dbusmenu_gtkclient_menuitem_get_submenu(DBUSMENU_GTKCLIENT(user_data), mi);
398+ if (menu != NULL) {
399+ gtk_menu_popdown(menu);
400+ }
401+ return;
402+}
403+
404 /* When the root menuitem changes we need to resetup things so that
405 we're back in the game. */
406 static void
407@@ -344,6 +356,8 @@
408 g_signal_handlers_disconnect_by_func(G_OBJECT(priv->root), root_child_moved, menu);
409 g_signal_handlers_disconnect_by_func(G_OBJECT(priv->root), root_child_delete, menu);
410
411+ dbusmenu_menuitem_foreach(priv->root, popdown_all, client);
412+
413 g_object_unref(priv->root);
414 priv->root = NULL;
415 }
416
417=== modified file 'libdbusmenu-gtk/parser.c'
418--- libdbusmenu-gtk/parser.c 2011-04-05 21:20:54 +0000
419+++ libdbusmenu-gtk/parser.c 2011-04-14 21:52:53 +0000
420@@ -87,6 +87,9 @@
421 static void widget_notify_cb (GtkWidget * widget,
422 GParamSpec * pspec,
423 gpointer data);
424+static void widget_add_cb (GtkWidget * widget,
425+ GtkWidget * child,
426+ gpointer data);
427 static gboolean should_show_image (GtkImage * image);
428 static void menuitem_notify_cb (GtkWidget * widget,
429 GParamSpec * pspec,
430@@ -169,6 +172,8 @@
431 g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
432 0, 0, NULL, G_CALLBACK(widget_notify_cb), NULL);
433 g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
434+ 0, 0, NULL, G_CALLBACK(widget_add_cb), NULL);
435+ g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
436 0, 0, NULL, G_CALLBACK(accel_changed), NULL);
437 g_signal_handlers_disconnect_matched(pdata->widget, (GSignalMatchType)G_SIGNAL_MATCH_FUNC,
438 0, 0, NULL, G_CALLBACK(checkbox_toggled), NULL);
439@@ -462,8 +467,8 @@
440 if (GTK_IS_SEPARATOR_MENU_ITEM (widget) || !find_menu_label (widget))
441 {
442 dbusmenu_menuitem_property_set (mi,
443- "type",
444- "separator");
445+ DBUSMENU_MENUITEM_PROP_TYPE,
446+ DBUSMENU_CLIENT_TYPES_SEPARATOR);
447
448 visible = gtk_widget_get_visible (widget);
449 sensitive = gtk_widget_get_sensitive (widget);
450@@ -605,6 +610,11 @@
451 G_CALLBACK (widget_notify_cb),
452 mi);
453
454+ g_signal_connect (widget,
455+ "add",
456+ G_CALLBACK (widget_add_cb),
457+ mi);
458+
459 return mi;
460 }
461
462@@ -962,6 +972,26 @@
463 return FALSE; // just pass through on everything
464 }
465
466+static gboolean
467+handle_first_label (DbusmenuMenuitem *mi)
468+{
469+ ParserData *pdata = g_object_get_data (G_OBJECT (mi), PARSER_DATA);
470+ if (!pdata->label)
471+ {
472+ /* GtkMenuItem's can start life as a separator if they have no child
473+ * GtkLabel. In this case, we need to convert the DbusmenuMenuitem from
474+ * a separator to a normal menuitem if the application adds a label.
475+ * As changing types isn't handled too well by the client, we delete
476+ * this menuitem for now and then recreate it
477+ */
478+ DbusmenuMenuitem * parent = dbusmenu_menuitem_get_parent (mi);
479+ recreate_menu_item (parent, mi);
480+ return TRUE;
481+ }
482+
483+ return FALSE;
484+}
485+
486 static void
487 widget_notify_cb (GtkWidget *widget,
488 GParamSpec *pspec,
489@@ -981,20 +1011,11 @@
490 }
491 else if (pspec->name == g_intern_static_string ("label"))
492 {
493- ParserData *pdata = g_object_get_data (G_OBJECT (child), PARSER_DATA);
494- if (!pdata->label)
495+ if (handle_first_label (child))
496 {
497- /* GtkMenuItem's can start life as a separator if they have no child
498- * GtkLabel. In this case, we need to convert the DbusmenuMenuitem from
499- * a separator to a normal menuitem if the application adds a label.
500- * As changing types isn't handled too well by the client, we delete
501- * this menuitem for now and then recreate it
502- */
503- DbusmenuMenuitem * parent = dbusmenu_menuitem_get_parent (child);
504- recreate_menu_item (parent, child);
505 return;
506 }
507-
508+
509 dbusmenu_menuitem_property_set (child,
510 DBUSMENU_MENUITEM_PROP_LABEL,
511 g_value_get_string (&prop_value));
512@@ -1066,6 +1087,15 @@
513 g_value_unset (&prop_value);
514 }
515
516+static void
517+widget_add_cb (GtkWidget *widget,
518+ GtkWidget *child,
519+ gpointer data)
520+{
521+ if (find_menu_label (child) != NULL)
522+ handle_first_label (data);
523+}
524+
525 /* A child item was added to a menu we're watching. Let's try to integrate it. */
526 static void
527 child_added_cb (GtkContainer *menu, GtkWidget *widget, gpointer data)

Subscribers

People subscribed via source and target branches

to all changes: