aboutsummaryrefslogtreecommitdiff
path: root/libindicate
diff options
context:
space:
mode:
Diffstat (limited to 'libindicate')
-rw-r--r--libindicate/Makefile.am16
-rw-r--r--libindicate/listener-marshal.list2
-rw-r--r--libindicate/listener.c9
3 files changed, 26 insertions, 1 deletions
diff --git a/libindicate/Makefile.am b/libindicate/Makefile.am
index b3c173a..53917b7 100644
--- a/libindicate/Makefile.am
+++ b/libindicate/Makefile.am
@@ -9,7 +9,9 @@ EXTRA_DIST = \
BUILT_SOURCES = \
dbus-indicate-server.h \
- dbus-indicate-client.h
+ dbus-indicate-client.h \
+ listener-marshal.c \
+ listener-marshal.h
lib_LTLIBRARIES = \
libindicate.la
@@ -30,6 +32,8 @@ libindicate_la_SOURCES = \
dbus-indicate-client.h \
server.c \
listener.c \
+ listener-marshal.c \
+ listener-marshal.h \
indicator.c
libindicate_la_LDFLAGS = \
@@ -57,5 +61,15 @@ dbus-indicate-client.h: indicate-interface.xml
--output=dbus-indicate-client.h \
$(srcdir)/indicate-interface.xml
+listener-marshal.h: listener-marshal.list
+ libtool --mode=execute glib-genmarshal --header \
+ --prefix=indicate_listener_marshal $(srcdir)/listener-marshal.list \
+ > listener-marshal.h
+
+listener-marshal.c: listener-marshal.list
+ libtool --mode=execute glib-genmarshal --body \
+ --prefix=indicate_listener_marshal $(srcdir)/listener-marshal.list \
+ > listener-marshal.c
+
pkgconfig_DATA = indicate.pc
pkgconfigdir = $(libdir)/pkgconfig
diff --git a/libindicate/listener-marshal.list b/libindicate/listener-marshal.list
new file mode 100644
index 0000000..c02c70f
--- /dev/null
+++ b/libindicate/listener-marshal.list
@@ -0,0 +1,2 @@
+# IndicatorAdded, IndicatorRemoved, IndicatorModified
+VOID:UINT,STRING
diff --git a/libindicate/listener.c b/libindicate/listener.c
index e60ad0f..a26ddcc 100644
--- a/libindicate/listener.c
+++ b/libindicate/listener.c
@@ -1,5 +1,6 @@
#include "listener.h"
+#include "listener-marshal.h"
#include <dbus/dbus-glib-bindings.h>
#include "dbus-indicate-client.h"
@@ -76,6 +77,12 @@ indicate_listener_class_init (IndicateListenerClass * class)
G_TYPE_NONE, 2, G_TYPE_UINT, G_TYPE_STRING);
*/
+ dbus_g_object_register_marshaller(indicate_listener_marshal_VOID__UINT_STRING,
+ G_TYPE_NONE,
+ G_TYPE_UINT,
+ G_TYPE_STRING,
+ G_TYPE_INVALID);
+
return;
}
@@ -255,6 +262,7 @@ todo_idle (gpointer data)
IndicateListener * listener = INDICATE_LISTENER(data);
if (listener == NULL) {
g_error("Listener got lost in todo_idle");
+ listener->todo_idle = 0;
return FALSE;
}
@@ -262,6 +270,7 @@ todo_idle (gpointer data)
/* Basically if we have no todo, we need to stop running. This
* is done this way to make the function error handling simpler
* and results in an extra run */
+ listener->todo_idle = 0;
return FALSE;
}