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

Proposed by Ted Gould
Status: Merged
Merged at revision: 94
Proposed branch: lp:~dbusmenu-team/libdbusmenu/ubuntu
Merge into: lp:~ubuntu-desktop/libdbusmenu/ubuntu
Diff against target: 719 lines (+426/-26)
13 files modified
configure (+11/-11)
configure.ac (+3/-3)
debian/changelog (+11/-0)
debian/control (+4/-1)
debian/rules (+1/-0)
docs/libdbusmenu-glib/reference/version.xml (+1/-1)
docs/libdbusmenu-gtk/reference/version.xml (+1/-1)
libdbusmenu-glib/client.c (+8/-3)
libdbusmenu-gtk/client.c (+7/-0)
tests/Makefile.am (+34/-0)
tests/Makefile.in (+103/-6)
tests/test-glib-events-client.c (+140/-0)
tests/test-glib-events-server.c (+102/-0)
To merge this branch: bzr merge lp:~dbusmenu-team/libdbusmenu/ubuntu
Reviewer Review Type Date Requested Status
Ken VanDine Pending
Review via email: mp+34992@code.launchpad.net

Description of the change

0.3.13

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

* New upstream release.
  * Handling window grabs on activated signals (LP: #633275)
  * Fixing the passing of the value to the results signal
  * Adding a test for checking event results signal
  * Changing the timeouts on event calls for better detection
    of failing applications

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configure'
2--- configure 2010-08-26 20:27:56 +0000
3+++ configure 2010-09-09 15:08:40 +0000
4@@ -1,6 +1,6 @@
5 #! /bin/sh
6 # Guess values for system-dependent variables and create Makefiles.
7-# Generated by GNU Autoconf 2.67 for libdbusmenu 0.3.12.
8+# Generated by GNU Autoconf 2.67 for libdbusmenu 0.3.13.
9 #
10 # Report bugs to <ted@canonical.com>.
11 #
12@@ -703,8 +703,8 @@
13 # Identity of this package.
14 PACKAGE_NAME='libdbusmenu'
15 PACKAGE_TARNAME='libdbusmenu'
16-PACKAGE_VERSION='0.3.12'
17-PACKAGE_STRING='libdbusmenu 0.3.12'
18+PACKAGE_VERSION='0.3.13'
19+PACKAGE_STRING='libdbusmenu 0.3.13'
20 PACKAGE_BUGREPORT='ted@canonical.com'
21 PACKAGE_URL=''
22
23@@ -1533,7 +1533,7 @@
24 # Omit some internal or obsolete options to make the list less imposing.
25 # This message is too long to be a string in the A/UX 3.1 sh.
26 cat <<_ACEOF
27-\`configure' configures libdbusmenu 0.3.12 to adapt to many kinds of systems.
28+\`configure' configures libdbusmenu 0.3.13 to adapt to many kinds of systems.
29
30 Usage: $0 [OPTION]... [VAR=VALUE]...
31
32@@ -1603,7 +1603,7 @@
33
34 if test -n "$ac_init_help"; then
35 case $ac_init_help in
36- short | recursive ) echo "Configuration of libdbusmenu 0.3.12:";;
37+ short | recursive ) echo "Configuration of libdbusmenu 0.3.13:";;
38 esac
39 cat <<\_ACEOF
40
41@@ -1741,7 +1741,7 @@
42 test -n "$ac_init_help" && exit $ac_status
43 if $ac_init_version; then
44 cat <<\_ACEOF
45-libdbusmenu configure 0.3.12
46+libdbusmenu configure 0.3.13
47 generated by GNU Autoconf 2.67
48
49 Copyright (C) 2010 Free Software Foundation, Inc.
50@@ -2112,7 +2112,7 @@
51 This file contains any messages produced by compilers while
52 running configure, to aid debugging if configure makes a mistake.
53
54-It was created by libdbusmenu $as_me 0.3.12, which was
55+It was created by libdbusmenu $as_me 0.3.13, which was
56 generated by GNU Autoconf 2.67. Invocation command line was
57
58 $ $0 $@
59@@ -2933,7 +2933,7 @@
60
61 # Define the identity of the package.
62 PACKAGE=libdbusmenu
63- VERSION=0.3.12
64+ VERSION=0.3.13
65
66
67 # Some tools Automake needs.
68@@ -13065,7 +13065,7 @@
69 ###########################
70
71 LIBDBUSMENU_CURRENT=1
72-LIBDBUSMENU_REVISION=14
73+LIBDBUSMENU_REVISION=15
74 LIBDBUSMENU_AGE=0
75
76
77@@ -14379,7 +14379,7 @@
78 # report actual input values of CONFIG_FILES etc. instead of their
79 # values after options handling.
80 ac_log="
81-This file was extended by libdbusmenu $as_me 0.3.12, which was
82+This file was extended by libdbusmenu $as_me 0.3.13, which was
83 generated by GNU Autoconf 2.67. Invocation command line was
84
85 CONFIG_FILES = $CONFIG_FILES
86@@ -14445,7 +14445,7 @@
87 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
88 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
89 ac_cs_version="\\
90-libdbusmenu config.status 0.3.12
91+libdbusmenu config.status 0.3.13
92 configured by $0, generated by GNU Autoconf 2.67,
93 with options \\"\$ac_cs_config\\"
94
95
96=== modified file 'configure.ac'
97--- configure.ac 2010-08-26 20:27:56 +0000
98+++ configure.ac 2010-09-09 15:08:40 +0000
99@@ -1,11 +1,11 @@
100
101-AC_INIT(libdbusmenu, 0.3.12, ted@canonical.com)
102+AC_INIT(libdbusmenu, 0.3.13, ted@canonical.com)
103 AC_COPYRIGHT([Copyright 2009,2010 Canonical])
104
105 AC_PREREQ(2.62)
106
107 AM_CONFIG_HEADER(config.h)
108-AM_INIT_AUTOMAKE(libdbusmenu, 0.3.12, [-Wno-portability])
109+AM_INIT_AUTOMAKE(libdbusmenu, 0.3.13, [-Wno-portability])
110
111 AM_MAINTAINER_MODE
112
113@@ -99,7 +99,7 @@
114 ###########################
115
116 LIBDBUSMENU_CURRENT=1
117-LIBDBUSMENU_REVISION=14
118+LIBDBUSMENU_REVISION=15
119 LIBDBUSMENU_AGE=0
120
121 AC_SUBST(LIBDBUSMENU_CURRENT)
122
123=== modified file 'debian/changelog'
124--- debian/changelog 2010-08-26 21:35:01 +0000
125+++ debian/changelog 2010-09-09 15:08:40 +0000
126@@ -1,3 +1,14 @@
127+libdbusmenu (0.3.13-0ubuntu1~ppa1) maverick; urgency=low
128+
129+ * New upstream release.
130+ * Handling window grabs on activated signals (LP: #633275)
131+ * Fixing the passing of the value to the results signal
132+ * Adding a test for checking event results signal
133+ * Changing the timeouts on event calls for better detection
134+ of failing applications
135+
136+ -- Ted Gould <ted@ubuntu.com> Thu, 09 Sep 2010 09:50:15 -0500
137+
138 libdbusmenu (0.3.12-0ubuntu1) maverick; urgency=low
139
140 * debian/rules: update the shlibs
141
142=== modified file 'debian/control'
143--- debian/control 2010-08-26 21:35:01 +0000
144+++ debian/control 2010-09-09 15:08:40 +0000
145@@ -20,7 +20,10 @@
146 gir1.0-glib-2.0,
147 gir1.0-gtk-2.0,
148 libx11-dev (>= 1.3),
149- valac
150+ valac,
151+# Check dependencies
152+ xvfb,
153+ dbus-test-runner
154 Standards-Version: 3.9.1
155 Homepage: https://launchpad.net/dbusmenu
156 Vcs-Bzr: https://code.launchpad.net/~dbusmenu-team/dbusmenu/ubuntu
157
158=== modified file 'debian/rules'
159--- debian/rules 2010-08-26 21:35:01 +0000
160+++ debian/rules 2010-09-09 15:08:40 +0000
161@@ -3,6 +3,7 @@
162 include /usr/share/cdbs/1/rules/debhelper.mk
163 include /usr/share/cdbs/1/class/gnome.mk
164
165+DEB_MAKE_CHECK_TARGET := check
166 DEB_CONFIGURE_EXTRA_FLAGS += --disable-scrollkeeper --enable-gtk-doc
167 LDFLAGS += -Wl,-z,defs -Wl,--as-needed
168
169
170=== modified file 'docs/libdbusmenu-glib/reference/version.xml'
171--- docs/libdbusmenu-glib/reference/version.xml 2010-08-26 20:27:56 +0000
172+++ docs/libdbusmenu-glib/reference/version.xml 2010-09-09 15:08:40 +0000
173@@ -1,1 +1,1 @@
174-0.3.12
175+0.3.13
176
177=== modified file 'docs/libdbusmenu-gtk/reference/version.xml'
178--- docs/libdbusmenu-gtk/reference/version.xml 2010-08-26 20:27:56 +0000
179+++ docs/libdbusmenu-gtk/reference/version.xml 2010-09-09 15:08:40 +0000
180@@ -1,1 +1,1 @@
181-0.3.12
182+0.3.13
183
184=== modified file 'libdbusmenu-glib/client.c'
185--- libdbusmenu-glib/client.c 2010-08-26 20:27:56 +0000
186+++ libdbusmenu-glib/client.c 2010-09-09 15:08:40 +0000
187@@ -1058,10 +1058,10 @@
188 event_data_t * edata = (event_data_t *)userdata;
189
190 if (error != NULL) {
191- g_warning("Unable to call menu item %d: %s", GPOINTER_TO_INT(userdata), error->message);
192+ g_warning("Unable to call event '%s' on menu item %d: %s", edata->event, dbusmenu_menuitem_get_id(edata->menuitem), error->message);
193 }
194
195- g_signal_emit(edata->client, signals[EVENT_RESULT], 0, edata->menuitem, edata->event, edata->data, edata->timestamp, error, TRUE);
196+ g_signal_emit(edata->client, signals[EVENT_RESULT], 0, edata->menuitem, edata->event, &edata->data, edata->timestamp, error, TRUE);
197
198 g_value_unset(&edata->data);
199 g_free(edata->event);
200@@ -1103,7 +1103,12 @@
201 g_value_copy(value, &edata->data);
202 edata->timestamp = timestamp;
203
204- org_ayatana_dbusmenu_event_async (priv->menuproxy, id, name, value, timestamp, menuitem_call_cb, edata);
205+ DBusGAsyncData *stuff;
206+ stuff = g_slice_new (DBusGAsyncData);
207+ stuff->cb = G_CALLBACK (menuitem_call_cb);
208+ stuff->userdata = edata;
209+ dbus_g_proxy_begin_call_with_timeout (priv->menuproxy, "Event", org_ayatana_dbusmenu_event_async_callback, stuff, _dbus_glib_async_data_free, 1000, G_TYPE_INT, id, G_TYPE_STRING, name, G_TYPE_VALUE, value, G_TYPE_UINT, timestamp, G_TYPE_INVALID);
210+
211 return;
212 }
213
214
215=== modified file 'libdbusmenu-gtk/client.c'
216--- libdbusmenu-gtk/client.c 2010-08-20 21:47:06 +0000
217+++ libdbusmenu-gtk/client.c 2010-09-09 15:08:40 +0000
218@@ -453,6 +453,13 @@
219 if (GTK_IS_MENU(parent)) {
220 activate_helper(GTK_MENU_SHELL(parent));
221 }
222+
223+ if (!GTK_MENU_SHELL (parent)->active) {
224+ gtk_grab_add (parent);
225+ GTK_MENU_SHELL (parent)->have_grab = TRUE;
226+ GTK_MENU_SHELL (parent)->active = TRUE;
227+ }
228+
229 gtk_menu_shell_select_item(GTK_MENU_SHELL(parent), attach);
230 }
231 }
232
233=== modified file 'tests/Makefile.am'
234--- tests/Makefile.am 2010-08-05 17:34:18 +0000
235+++ tests/Makefile.am 2010-09-09 15:08:40 +0000
236@@ -5,6 +5,7 @@
237
238 TESTS = \
239 test-glib-objects-test \
240+ test-glib-events \
241 test-glib-layout \
242 test-glib-properties \
243 test-glib-proxy \
244@@ -20,6 +21,8 @@
245 check_PROGRAMS = \
246 glib-server-nomenu \
247 test-glib-objects \
248+ test-glib-events-client \
249+ test-glib-events-server \
250 test-glib-layout-client \
251 test-glib-layout-server \
252 test-glib-properties-client \
253@@ -129,6 +132,37 @@
254 $(DBUSMENUGLIB_LIBS)
255
256 ######################
257+# Test Glib Events
258+######################
259+
260+test-glib-events: test-glib-events-client test-glib-events-server Makefile.am
261+ @echo "#!/bin/bash" > $@
262+ @echo $(DBUS_RUNNER) --task ./test-glib-events-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@
263+ @chmod +x $@
264+
265+test_glib_events_server_SOURCES = \
266+ test-glib-events-server.c
267+
268+test_glib_events_server_CFLAGS = \
269+ -I $(srcdir)/.. \
270+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
271+
272+test_glib_events_server_LDADD = \
273+ ../libdbusmenu-glib/libdbusmenu-glib.la \
274+ $(DBUSMENUGLIB_LIBS)
275+
276+test_glib_events_client_SOURCES = \
277+ test-glib-events-client.c
278+
279+test_glib_events_client_CFLAGS = \
280+ -I $(srcdir)/.. \
281+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
282+
283+test_glib_events_client_LDADD = \
284+ ../libdbusmenu-glib/libdbusmenu-glib.la \
285+ $(DBUSMENUGLIB_LIBS)
286+
287+######################
288 # Test JSON
289 ######################
290
291
292=== modified file 'tests/Makefile.in'
293--- tests/Makefile.in 2010-08-12 16:22:27 +0000
294+++ tests/Makefile.in 2010-09-09 15:08:40 +0000
295@@ -36,13 +36,15 @@
296 POST_UNINSTALL = :
297 build_triplet = @build@
298 host_triplet = @host@
299-TESTS = test-glib-objects-test test-glib-layout test-glib-properties \
300- test-glib-proxy test-glib-simple-items$(EXEEXT) \
301- test-glib-submenu test-json test-gtk-objects-test \
302- test-gtk-label test-gtk-shortcut test-gtk-reorder \
303- test-gtk-submenu
304+TESTS = test-glib-objects-test test-glib-events test-glib-layout \
305+ test-glib-properties test-glib-proxy \
306+ test-glib-simple-items$(EXEEXT) test-glib-submenu test-json \
307+ test-gtk-objects-test test-gtk-label test-gtk-shortcut \
308+ test-gtk-reorder test-gtk-submenu
309 check_PROGRAMS = glib-server-nomenu$(EXEEXT) \
310- test-glib-objects$(EXEEXT) test-glib-layout-client$(EXEEXT) \
311+ test-glib-objects$(EXEEXT) test-glib-events-client$(EXEEXT) \
312+ test-glib-events-server$(EXEEXT) \
313+ test-glib-layout-client$(EXEEXT) \
314 test-glib-layout-server$(EXEEXT) \
315 test-glib-properties-client$(EXEEXT) \
316 test-glib-properties-server$(EXEEXT) \
317@@ -118,6 +120,26 @@
318 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
319 $(glib_server_nomenu_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
320 $(LDFLAGS) -o $@
321+am_test_glib_events_client_OBJECTS = \
322+ test_glib_events_client-test-glib-events-client.$(OBJEXT)
323+test_glib_events_client_OBJECTS = \
324+ $(am_test_glib_events_client_OBJECTS)
325+test_glib_events_client_DEPENDENCIES = \
326+ ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1)
327+test_glib_events_client_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
328+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
329+ $(test_glib_events_client_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
330+ $(LDFLAGS) -o $@
331+am_test_glib_events_server_OBJECTS = \
332+ test_glib_events_server-test-glib-events-server.$(OBJEXT)
333+test_glib_events_server_OBJECTS = \
334+ $(am_test_glib_events_server_OBJECTS)
335+test_glib_events_server_DEPENDENCIES = \
336+ ../libdbusmenu-glib/libdbusmenu-glib.la $(am__DEPENDENCIES_1)
337+test_glib_events_server_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
338+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
339+ $(test_glib_events_server_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
340+ $(LDFLAGS) -o $@
341 am_test_glib_layout_client_OBJECTS = \
342 test_glib_layout_client-test-glib-layout-client.$(OBJEXT)
343 test_glib_layout_client_OBJECTS = \
344@@ -364,6 +386,8 @@
345 am__v_GEN_0 = @echo " GEN " $@;
346 SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
347 $(glib_server_nomenu_SOURCES) \
348+ $(test_glib_events_client_SOURCES) \
349+ $(test_glib_events_server_SOURCES) \
350 $(test_glib_layout_client_SOURCES) \
351 $(test_glib_layout_server_SOURCES) \
352 $(test_glib_objects_SOURCES) \
353@@ -385,6 +409,8 @@
354 $(test_json_server_SOURCES)
355 DIST_SOURCES = $(libdbusmenu_jsonloader_la_SOURCES) \
356 $(glib_server_nomenu_SOURCES) \
357+ $(test_glib_events_client_SOURCES) \
358+ $(test_glib_events_server_SOURCES) \
359 $(test_glib_layout_client_SOURCES) \
360 $(test_glib_layout_server_SOURCES) \
361 $(test_glib_objects_SOURCES) \
362@@ -655,6 +681,28 @@
363 ../libdbusmenu-glib/libdbusmenu-glib.la \
364 $(DBUSMENUGLIB_LIBS)
365
366+test_glib_events_server_SOURCES = \
367+ test-glib-events-server.c
368+
369+test_glib_events_server_CFLAGS = \
370+ -I $(srcdir)/.. \
371+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
372+
373+test_glib_events_server_LDADD = \
374+ ../libdbusmenu-glib/libdbusmenu-glib.la \
375+ $(DBUSMENUGLIB_LIBS)
376+
377+test_glib_events_client_SOURCES = \
378+ test-glib-events-client.c
379+
380+test_glib_events_client_CFLAGS = \
381+ -I $(srcdir)/.. \
382+ $(DBUSMENUGLIB_CFLAGS) -Wall -Werror
383+
384+test_glib_events_client_LDADD = \
385+ ../libdbusmenu-glib/libdbusmenu-glib.la \
386+ $(DBUSMENUGLIB_LIBS)
387+
388 test_json_server_SOURCES = \
389 test-json-server.c
390
391@@ -1049,6 +1097,12 @@
392 glib-server-nomenu$(EXEEXT): $(glib_server_nomenu_OBJECTS) $(glib_server_nomenu_DEPENDENCIES)
393 @rm -f glib-server-nomenu$(EXEEXT)
394 $(AM_V_CCLD)$(glib_server_nomenu_LINK) $(glib_server_nomenu_OBJECTS) $(glib_server_nomenu_LDADD) $(LIBS)
395+test-glib-events-client$(EXEEXT): $(test_glib_events_client_OBJECTS) $(test_glib_events_client_DEPENDENCIES)
396+ @rm -f test-glib-events-client$(EXEEXT)
397+ $(AM_V_CCLD)$(test_glib_events_client_LINK) $(test_glib_events_client_OBJECTS) $(test_glib_events_client_LDADD) $(LIBS)
398+test-glib-events-server$(EXEEXT): $(test_glib_events_server_OBJECTS) $(test_glib_events_server_DEPENDENCIES)
399+ @rm -f test-glib-events-server$(EXEEXT)
400+ $(AM_V_CCLD)$(test_glib_events_server_LINK) $(test_glib_events_server_OBJECTS) $(test_glib_events_server_LDADD) $(LIBS)
401 test-glib-layout-client$(EXEEXT): $(test_glib_layout_client_OBJECTS) $(test_glib_layout_client_DEPENDENCIES)
402 @rm -f test-glib-layout-client$(EXEEXT)
403 $(AM_V_CCLD)$(test_glib_layout_client_LINK) $(test_glib_layout_client_OBJECTS) $(test_glib_layout_client_LDADD) $(LIBS)
404@@ -1121,6 +1175,8 @@
405
406 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/glib_server_nomenu-glib-server-nomenu.Po@am__quote@
407 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdbusmenu_jsonloader_la-json-loader.Plo@am__quote@
408+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_events_client-test-glib-events-client.Po@am__quote@
409+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_events_server-test-glib-events-server.Po@am__quote@
410 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Po@am__quote@
411 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_layout_server-test-glib-layout-server.Po@am__quote@
412 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_glib_objects-test-glib-objects.Po@am__quote@
413@@ -1191,6 +1247,38 @@
414 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
415 @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(glib_server_nomenu_CFLAGS) $(CFLAGS) -c -o glib_server_nomenu-glib-server-nomenu.obj `if test -f 'glib-server-nomenu.c'; then $(CYGPATH_W) 'glib-server-nomenu.c'; else $(CYGPATH_W) '$(srcdir)/glib-server-nomenu.c'; fi`
416
417+test_glib_events_client-test-glib-events-client.o: test-glib-events-client.c
418+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_client_CFLAGS) $(CFLAGS) -MT test_glib_events_client-test-glib-events-client.o -MD -MP -MF $(DEPDIR)/test_glib_events_client-test-glib-events-client.Tpo -c -o test_glib_events_client-test-glib-events-client.o `test -f 'test-glib-events-client.c' || echo '$(srcdir)/'`test-glib-events-client.c
419+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_client-test-glib-events-client.Tpo $(DEPDIR)/test_glib_events_client-test-glib-events-client.Po
420+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
421+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-glib-events-client.c' object='test_glib_events_client-test-glib-events-client.o' libtool=no @AMDEPBACKSLASH@
422+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
423+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_client_CFLAGS) $(CFLAGS) -c -o test_glib_events_client-test-glib-events-client.o `test -f 'test-glib-events-client.c' || echo '$(srcdir)/'`test-glib-events-client.c
424+
425+test_glib_events_client-test-glib-events-client.obj: test-glib-events-client.c
426+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_client_CFLAGS) $(CFLAGS) -MT test_glib_events_client-test-glib-events-client.obj -MD -MP -MF $(DEPDIR)/test_glib_events_client-test-glib-events-client.Tpo -c -o test_glib_events_client-test-glib-events-client.obj `if test -f 'test-glib-events-client.c'; then $(CYGPATH_W) 'test-glib-events-client.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-client.c'; fi`
427+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_client-test-glib-events-client.Tpo $(DEPDIR)/test_glib_events_client-test-glib-events-client.Po
428+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
429+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-glib-events-client.c' object='test_glib_events_client-test-glib-events-client.obj' libtool=no @AMDEPBACKSLASH@
430+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
431+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_client_CFLAGS) $(CFLAGS) -c -o test_glib_events_client-test-glib-events-client.obj `if test -f 'test-glib-events-client.c'; then $(CYGPATH_W) 'test-glib-events-client.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-client.c'; fi`
432+
433+test_glib_events_server-test-glib-events-server.o: test-glib-events-server.c
434+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_server_CFLAGS) $(CFLAGS) -MT test_glib_events_server-test-glib-events-server.o -MD -MP -MF $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo -c -o test_glib_events_server-test-glib-events-server.o `test -f 'test-glib-events-server.c' || echo '$(srcdir)/'`test-glib-events-server.c
435+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo $(DEPDIR)/test_glib_events_server-test-glib-events-server.Po
436+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
437+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-glib-events-server.c' object='test_glib_events_server-test-glib-events-server.o' libtool=no @AMDEPBACKSLASH@
438+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
439+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_server_CFLAGS) $(CFLAGS) -c -o test_glib_events_server-test-glib-events-server.o `test -f 'test-glib-events-server.c' || echo '$(srcdir)/'`test-glib-events-server.c
440+
441+test_glib_events_server-test-glib-events-server.obj: test-glib-events-server.c
442+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_server_CFLAGS) $(CFLAGS) -MT test_glib_events_server-test-glib-events-server.obj -MD -MP -MF $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo -c -o test_glib_events_server-test-glib-events-server.obj `if test -f 'test-glib-events-server.c'; then $(CYGPATH_W) 'test-glib-events-server.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-server.c'; fi`
443+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_events_server-test-glib-events-server.Tpo $(DEPDIR)/test_glib_events_server-test-glib-events-server.Po
444+@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
445+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-glib-events-server.c' object='test_glib_events_server-test-glib-events-server.obj' libtool=no @AMDEPBACKSLASH@
446+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
447+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_events_server_CFLAGS) $(CFLAGS) -c -o test_glib_events_server-test-glib-events-server.obj `if test -f 'test-glib-events-server.c'; then $(CYGPATH_W) 'test-glib-events-server.c'; else $(CYGPATH_W) '$(srcdir)/test-glib-events-server.c'; fi`
448+
449 test_glib_layout_client-test-glib-layout-client.o: test-glib-layout-client.c
450 @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_glib_layout_client_CFLAGS) $(CFLAGS) -MT test_glib_layout_client-test-glib-layout-client.o -MD -MP -MF $(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Tpo -c -o test_glib_layout_client-test-glib-layout-client.o `test -f 'test-glib-layout-client.c' || echo '$(srcdir)/'`test-glib-layout-client.c
451 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Tpo $(DEPDIR)/test_glib_layout_client-test-glib-layout-client.Po
452@@ -1932,6 +2020,15 @@
453 @chmod +x $@
454
455 ######################
456+# Test Glib Events
457+######################
458+
459+test-glib-events: test-glib-events-client test-glib-events-server Makefile.am
460+ @echo "#!/bin/bash" > $@
461+ @echo $(DBUS_RUNNER) --task ./test-glib-events-client --task-name Client --task ./test-glib-events-server --task-name Server --ignore-return >> $@
462+ @chmod +x $@
463+
464+######################
465 # Test JSON
466 ######################
467
468
469=== added file 'tests/test-glib-events-client.c'
470--- tests/test-glib-events-client.c 1970-01-01 00:00:00 +0000
471+++ tests/test-glib-events-client.c 2010-09-09 15:08:40 +0000
472@@ -0,0 +1,140 @@
473+/*
474+A test for libdbusmenu to ensure its quality.
475+
476+Copyright 2009 Canonical Ltd.
477+
478+Authors:
479+ Ted Gould <ted@canonical.com>
480+
481+This program is free software: you can redistribute it and/or modify it
482+under the terms of the GNU General Public License version 3, as published
483+by the Free Software Foundation.
484+
485+This program is distributed in the hope that it will be useful, but
486+WITHOUT ANY WARRANTY; without even the implied warranties of
487+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
488+PURPOSE. See the GNU General Public License for more details.
489+
490+You should have received a copy of the GNU General Public License along
491+with this program. If not, see <http://www.gnu.org/licenses/>.
492+*/
493+
494+#include <glib.h>
495+
496+#include <libdbusmenu-glib/client.h>
497+#include <libdbusmenu-glib/menuitem.h>
498+
499+#include "test-glib-submenu.h"
500+
501+#define TIMESTAMP_VALUE 54
502+#define DATA_VALUE 32
503+#define USER_VALUE 76
504+
505+static GMainLoop * mainloop = NULL;
506+static gboolean passed = TRUE;
507+static gboolean first = TRUE;
508+
509+static void
510+event_status (DbusmenuClient * client, DbusmenuMenuitem * item, gchar * name, GValue * data, guint timestamp, GError * error, gpointer user_data)
511+{
512+ g_debug("Event status: %s", error == NULL ? "Sent" : "Error");
513+
514+ if (timestamp != TIMESTAMP_VALUE) {
515+ g_debug("Timestamp value pass fail got: %d", timestamp);
516+ passed = FALSE;
517+ g_main_loop_quit(mainloop);
518+ return;
519+ }
520+
521+ if (g_value_get_int(data) != DATA_VALUE) {
522+ g_debug("Data value pass fail got: %d", g_value_get_int(data));
523+ passed = FALSE;
524+ g_main_loop_quit(mainloop);
525+ return;
526+ }
527+
528+ if (GPOINTER_TO_INT(user_data) != USER_VALUE) {
529+ g_debug("User value pass fail got: %d", GPOINTER_TO_INT(user_data));
530+ passed = FALSE;
531+ g_main_loop_quit(mainloop);
532+ return;
533+ }
534+
535+ if (first && error != NULL) {
536+ passed = FALSE;
537+ g_debug("First signal back failed.");
538+ g_main_loop_quit(mainloop);
539+ return;
540+ }
541+
542+ if (!first && error == NULL) {
543+ passed = FALSE;
544+ g_debug("Second signal didn't fail.");
545+ g_main_loop_quit(mainloop);
546+ return;
547+ }
548+
549+ if (!first && error != NULL) {
550+ g_debug("Second signal failed: pass.");
551+ g_main_loop_quit(mainloop);
552+ return;
553+ }
554+
555+ first = FALSE;
556+ dbusmenu_menuitem_handle_event(item, "clicked", data, timestamp);
557+ return;
558+}
559+
560+static void
561+layout_updated (DbusmenuClient * client, gpointer user_data)
562+{
563+ g_debug("Layout Updated");
564+
565+ DbusmenuMenuitem * menuroot = dbusmenu_client_get_root(client);
566+ if (menuroot == NULL) {
567+ g_debug("Root is NULL?");
568+ return;
569+ }
570+
571+ GValue data = {0};
572+ g_value_init(&data, G_TYPE_INT);
573+ g_value_set_int(&data, DATA_VALUE);
574+
575+ dbusmenu_menuitem_handle_event(menuroot, "clicked", &data, TIMESTAMP_VALUE);
576+
577+ return;
578+}
579+
580+static gboolean
581+timer_func (gpointer data)
582+{
583+ g_debug("Death timer. Oops.");
584+ passed = FALSE;
585+ g_main_loop_quit(mainloop);
586+ return FALSE;
587+}
588+
589+int
590+main (int argc, char ** argv)
591+{
592+ g_type_init();
593+
594+ DbusmenuClient * client = dbusmenu_client_new("org.dbusmenu.test", "/org/test");
595+ g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED, G_CALLBACK(layout_updated), NULL);
596+ g_signal_connect(G_OBJECT(client), DBUSMENU_CLIENT_SIGNAL_EVENT_RESULT, G_CALLBACK(event_status), GINT_TO_POINTER(USER_VALUE));
597+
598+ g_timeout_add_seconds(5, timer_func, client);
599+
600+ mainloop = g_main_loop_new(NULL, FALSE);
601+ g_main_loop_run(mainloop);
602+
603+ g_object_unref(G_OBJECT(client));
604+
605+ if (passed) {
606+ g_debug("Quiting");
607+ return 0;
608+ } else {
609+ g_debug("Quiting as we're a failure");
610+ return 1;
611+ }
612+}
613
614=== added file 'tests/test-glib-events-server.c'
615--- tests/test-glib-events-server.c 1970-01-01 00:00:00 +0000
616+++ tests/test-glib-events-server.c 2010-09-09 15:08:40 +0000
617@@ -0,0 +1,102 @@
618+/*
619+A test for libdbusmenu to ensure its quality.
620+
621+Copyright 2009 Canonical Ltd.
622+
623+Authors:
624+ Ted Gould <ted@canonical.com>
625+
626+This program is free software: you can redistribute it and/or modify it
627+under the terms of the GNU General Public License version 3, as published
628+by the Free Software Foundation.
629+
630+This program is distributed in the hope that it will be useful, but
631+WITHOUT ANY WARRANTY; without even the implied warranties of
632+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
633+PURPOSE. See the GNU General Public License for more details.
634+
635+You should have received a copy of the GNU General Public License along
636+with this program. If not, see <http://www.gnu.org/licenses/>.
637+*/
638+
639+#include <glib.h>
640+
641+#include <dbus/dbus.h>
642+#include <dbus/dbus-glib.h>
643+#include <dbus/dbus-glib-lowlevel.h>
644+#include <dbus/dbus-glib-bindings.h>
645+
646+#include <libdbusmenu-glib/server.h>
647+#include <libdbusmenu-glib/menuitem.h>
648+
649+static DbusmenuServer * server = NULL;
650+static GMainLoop * mainloop = NULL;
651+static gboolean passed = TRUE;
652+
653+static void
654+handle_event (void) {
655+ g_debug("Handle event");
656+ g_main_loop_quit(mainloop);
657+ return;
658+}
659+
660+static gboolean
661+timer_func (gpointer data)
662+{
663+ passed = FALSE;
664+ g_debug("Never got a signal");
665+ g_main_loop_quit(mainloop);
666+ return FALSE;
667+}
668+
669+int
670+main (int argc, char ** argv)
671+{
672+ GError * error = NULL;
673+
674+ g_type_init();
675+
676+ DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
677+ g_debug("DBus ID: %s", dbus_connection_get_server_id(dbus_g_connection_get_connection(dbus_g_bus_get(DBUS_BUS_SESSION, NULL))));
678+
679+ DBusGProxy * bus_proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
680+ guint nameret = 0;
681+
682+ if (!org_freedesktop_DBus_request_name(bus_proxy, "org.dbusmenu.test", 0, &nameret, &error)) {
683+ g_error("Unable to call to request name");
684+ return 1;
685+ }
686+
687+ if (nameret != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
688+ g_error("Unable to get name");
689+ return 1;
690+ }
691+
692+ server = dbusmenu_server_new("/org/test");
693+ DbusmenuMenuitem * menuitem = dbusmenu_menuitem_new();
694+ dbusmenu_server_set_root(server, menuitem);
695+
696+ g_signal_connect(G_OBJECT(menuitem), DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, G_CALLBACK(handle_event), NULL);
697+
698+ g_timeout_add_seconds(3, timer_func, NULL);
699+
700+ mainloop = g_main_loop_new(NULL, FALSE);
701+ g_main_loop_run(mainloop);
702+
703+ if (passed) {
704+ int i;
705+
706+ for (i = 0; i < 5; i++) {
707+ g_debug("Ignoring signals: %d", i);
708+ g_usleep(1000 * 1000);
709+ }
710+ }
711+
712+ if (passed) {
713+ g_debug("Test Passed");
714+ return 0;
715+ } else {
716+ g_debug("Test Failed");
717+ return 1;
718+ }
719+}

Subscribers

People subscribed via source and target branches

to all changes: