aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bzrignore1
-rw-r--r--data/indicator-messages.service.in2
-rw-r--r--debian/changelog7
-rw-r--r--src/Makefile.am4
-rw-r--r--src/indicator-messages.c11
-rw-r--r--test/indicator-messages-service-activate.build.sh3
-rw-r--r--test/indicator-messages-service-activate.c53
7 files changed, 77 insertions, 4 deletions
diff --git a/.bzrignore b/.bzrignore
index a3226e8..42bdaa3 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -18,3 +18,4 @@ libmessaging_la-im-menu-item.lo
src/libmessaging_la-app-menu-item.lo
data/indicator-messages.service
indicator-messages-service
+indicator-messages-service-activate
diff --git a/data/indicator-messages.service.in b/data/indicator-messages.service.in
index fbe8b4a..908079a 100644
--- a/data/indicator-messages.service.in
+++ b/data/indicator-messages.service.in
@@ -1,3 +1,3 @@
-[Indicator Messages]
+[D-BUS Service]
Name=com.ubuntu.indicator.messages
Exec=@prefix@/bin/indicator-messages-service
diff --git a/debian/changelog b/debian/changelog
index 2340449..51bf2fa 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+indicator-messages (0.2.0~bzr120~dbusmenu1-0ubuntu4) UNRELEASED; urgency=low
+
+ * Fixing the service file to make it correct. Also some other smaller
+ cleanups.
+
+ -- Ted Gould <ted@ubuntu.com> Thu, 28 May 2009 10:34:11 -0500
+
indicator-messages (0.2.0~bzr120~dbusmenu1-0ubuntu3) jaunty; urgency=low
* Putting the service file in the proper directory
diff --git a/src/Makefile.am b/src/Makefile.am
index c543e48..74db2df 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -4,10 +4,10 @@ bin_PROGRAMS = indicator-messages-service
messaginglibdir = $(INDICATORDIR)
messaginglib_LTLIBRARIES = libmessaging.la
libmessaging_la_SOURCES = indicator-messages.c im-menu-item.c im-menu-item.h app-menu-item.c app-menu-item.h
-libmessaging_la_CFLAGS = $(APPLET_CFLAGS) -Wall -Wl,-Bsymbolic-functions -Wl,-z,defs -Wl,--as-needed
+libmessaging_la_CFLAGS = $(APPLET_CFLAGS) -Wall -Wl,-Bsymbolic-functions -Wl,-z,defs -Wl,--as-needed -Werror
libmessaging_la_LIBADD = $(APPLET_LIBS)
libmessaging_la_LDFLAGS = -module -avoid-version
indicator_messages_service_SOURCES = indicator-service.c im-menu-item.c im-menu-item.h app-menu-item.c app-menu-item.h
-indicator_messages_service_CFLAGS = $(APPLET_CFLAGS) -Wall -Wl,-Bsymbolic-functions -Wl,-z,defs -Wl,--as-needed
+indicator_messages_service_CFLAGS = $(APPLET_CFLAGS) -Wall -Wl,-Bsymbolic-functions -Wl,-z,defs -Wl,--as-needed -Werror
indicator_messages_service_LDADD = $(APPLET_LIBS)
diff --git a/src/indicator-messages.c b/src/indicator-messages.c
index bccffe7..efb52b2 100644
--- a/src/indicator-messages.c
+++ b/src/indicator-messages.c
@@ -65,7 +65,16 @@ get_menu (void)
DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
DBusGProxy * proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
- org_freedesktop_DBus_start_service_by_name (proxy, INDICATOR_MESSAGES_DBUS_NAME, 0, &returnval, &error);
+ if (!org_freedesktop_DBus_start_service_by_name (proxy, INDICATOR_MESSAGES_DBUS_NAME, 0, &returnval, &error)) {
+ g_error("Unable to send message to DBus to start service: %s", error != NULL ? error->message : "(NULL error)" );
+ g_error_free(error);
+ return NULL;
+ }
+
+ if (returnval != DBUS_START_REPLY_SUCCESS && returnval != DBUS_START_REPLY_ALREADY_RUNNING) {
+ g_error("Return value isn't indicative of success: %d", returnval);
+ return NULL;
+ }
return GTK_MENU(dbusmenu_gtkmenu_new(INDICATOR_MESSAGES_DBUS_NAME, INDICATOR_MESSAGES_DBUS_OBJECT));
}
diff --git a/test/indicator-messages-service-activate.build.sh b/test/indicator-messages-service-activate.build.sh
new file mode 100644
index 0000000..87a0316
--- /dev/null
+++ b/test/indicator-messages-service-activate.build.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+gcc -o indicator-messages-service-activate indicator-messages-service-activate.c `pkg-config --cflags --libs dbus-1 dbus-glib-1`
diff --git a/test/indicator-messages-service-activate.c b/test/indicator-messages-service-activate.c
new file mode 100644
index 0000000..98c6522
--- /dev/null
+++ b/test/indicator-messages-service-activate.c
@@ -0,0 +1,53 @@
+/*
+An indicator to show information that is in messaging applications
+that the user is using.
+
+Copyright 2009 Canonical Ltd.
+
+Authors:
+ Ted Gould <ted@canonical.com>
+
+This program is free software: you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 3, as published
+by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranties of
+MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include <string.h>
+#include <dbus/dbus-glib.h>
+#include <dbus/dbus-glib-bindings.h>
+#include "../src/dbus-data.h"
+
+int
+main (int argc, char ** argv)
+{
+ g_type_init();
+
+ guint returnval = 0;
+ GError * error = NULL;
+
+ DBusGConnection * connection = dbus_g_bus_get(DBUS_BUS_SESSION, NULL);
+ DBusGProxy * proxy = dbus_g_proxy_new_for_name(connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS);
+
+ g_debug("Activating service: %s", INDICATOR_MESSAGES_DBUS_NAME);
+ if (!org_freedesktop_DBus_start_service_by_name (proxy, INDICATOR_MESSAGES_DBUS_NAME, 0, &returnval, &error)) {
+ g_error("Unable to send message to DBus to start service: %s", error != NULL ? error->message : "(NULL error)" );
+ g_error_free(error);
+ return 1;
+ }
+
+ if (returnval != DBUS_START_REPLY_SUCCESS && returnval != DBUS_START_REPLY_ALREADY_RUNNING) {
+ g_error("Return value isn't indicative of success: %d", returnval);
+ return 1;
+ }
+
+ return 0;
+}
+