[maemo-commits] [maemo-commits] r15009 - in projects/haf/trunk/libosso: debian src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jan 8 16:26:49 EET 2008
Author: kihamala
Date: 2008-01-08 16:26:46 +0200 (Tue, 08 Jan 2008)
New Revision: 15009

Modified:
   projects/haf/trunk/libosso/debian/changelog
   projects/haf/trunk/libosso/src/osso-rpc.c
Log:
added missing startup notification


Modified: projects/haf/trunk/libosso/debian/changelog
===================================================================
--- projects/haf/trunk/libosso/debian/changelog	2008-01-08 13:59:35 UTC (rev 15008)
+++ projects/haf/trunk/libosso/debian/changelog	2008-01-08 14:26:46 UTC (rev 15009)
@@ -1,3 +1,9 @@
+libosso (2.16-1~unreleased) unstable; urgency=low
+
+  * Added fix for missing startup notification (NB#55837).
+
+ -- Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>  Tue,  8 Jan 2008 16:21:44 +0200
+
 libosso (2.15-1) unstable; urgency=low
 
   * Removed reference to gtk_infoprint. Fixes: MB#1779 

Modified: projects/haf/trunk/libosso/src/osso-rpc.c
===================================================================
--- projects/haf/trunk/libosso/src/osso-rpc.c	2008-01-08 13:59:35 UTC (rev 15008)
+++ projects/haf/trunk/libosso/src/osso-rpc.c	2008-01-08 14:26:46 UTC (rev 15009)
@@ -27,6 +27,12 @@
 #include <assert.h>
 #include <stdlib.h>
 
+#define HILDON_DESKTOP_SERVICE "com.nokia.hildon-desktop"
+#define HDWM_STARTUP_NOTIFICATION_IFACE "com.nokia.hildon.hdwm.startupnotification"
+#define HDWM_OBJECT_PATH                "/com/nokia/hildon/hdwm"
+#define HDWM_STARTUP_NOTIFICATION_STARTING  "starting"
+
+
 static void _rpc_handler (osso_context_t * osso,
                           DBusMessage * msg,
                           _osso_callback_data_t *data,
@@ -67,6 +73,35 @@
 } fill_from_va_list_data;
 
 static void
+startup_notify (osso_context_t *osso, const gchar *service)
+{
+    DBusMessage *msg;
+    dbus_bool_t succ;
+
+    msg = dbus_message_new_method_call(HILDON_DESKTOP_SERVICE,
+                                       HDWM_OBJECT_PATH,
+				       HDWM_STARTUP_NOTIFICATION_IFACE,
+                                       HDWM_STARTUP_NOTIFICATION_STARTING);
+    if (msg == NULL) {
+        ULOG_ERR_F("dbus_message_new_method_call failed");
+        return;
+    }
+
+    dbus_message_append_args(msg, DBUS_TYPE_STRING, &service, DBUS_TYPE_INVALID);
+    dbus_message_set_no_reply(msg, TRUE);
+
+    succ = dbus_connection_send(osso->conn, msg, NULL);
+
+    if (!succ) {
+        ULOG_ERR_F("dbus_connection_send failed");
+        return;
+    }
+
+    dbus_message_unref(msg);
+
+}
+
+static void
 fill_from_va_list (DBusMessage *msg, void *raw)
 {
   fill_from_va_list_data *data = (fill_from_va_list_data *)raw;
@@ -202,6 +237,7 @@
 	b = dbus_connection_send(conn, msg, NULL);
         dbus_message_unref(msg);
         if (b) {
+            startup_notify(osso, service);
             return OSSO_OK;
         }
         else {
@@ -217,6 +253,7 @@
 							osso->rpc_timeout,
 							&err);
         dbus_message_unref(msg);
+        startup_notify(osso, service);
 
         if (reply == NULL) {
             ULOG_ERR_F("dbus_connection_send_with_reply_and_block error: %s",
@@ -378,6 +415,8 @@
             rpc = NULL;
         }
 	dbus_message_unref(msg);
+        startup_notify(osso, service);
+
 	return OSSO_OK;
     }
     else {


More information about the maemo-commits mailing list