Index: src/obexpush.c
===================================================================
--- src/obexpush.c	(révision 245)
+++ src/obexpush.c	(copie de travail)
@@ -67,7 +67,9 @@
 }
 
 static void
-launch_viewer_for_file (NotifyNotification *notification, const char *action, const char *file_uri)
+notification_launch_action_on_file_cb (NotifyNotification *notification,
+				       const char *action,
+				       const char *file_uri)
 {
 	GdkScreen *screen;
 	GAppLaunchContext *ctx;
@@ -87,11 +89,33 @@
 	screen = NULL;
 #endif
 
-	if (!g_app_info_launch_default_for_uri (file_uri, ctx, NULL)) {
+	// We launch the file viewer for the file
+	if (g_strcmp0 (action, "display") == 0) {
+	    if (!g_app_info_launch_default_for_uri (file_uri, ctx, NULL)) {
 		g_warning ("Failed to launch the file viewer\n");
+	    }
 	}
+
+	// we open the Downloads folder
+	if (g_strcmp0 (action, "reveal") == 0) {
+	    GFile *file;
+	    GFile *parent;
+	    gchar *parent_uri;
+
+	    file = g_file_new_for_uri (file_uri);
+	    parent = g_file_get_parent (file);
+            parent_uri = g_file_get_uri (parent);
+            g_object_unref (file);
+            g_object_unref (parent);
+
+	    if (!g_app_info_launch_default_for_uri (parent_uri, ctx, NULL)) {
+		g_warning ("Could not launch the file manager\n");
+	    }
+
+	    g_free (parent_uri);
+	}
+
 	notify_notification_close (notification, NULL);
-	g_object_unref (notification);
 	hide_statusicon ();
 }
 
@@ -103,7 +127,7 @@
 
 	file_uri = g_filename_to_uri (filename, NULL, NULL);
 	if (file_uri == NULL) {
-		g_warning ("Couldn't make a filename from '%s'", filename);
+		g_warning ("Could not make a filename from '%s'", filename);
 		return;
 	}
 
@@ -117,7 +141,12 @@
 
 	notify_notification_set_timeout (notification, NOTIFY_EXPIRES_DEFAULT);
 	notify_notification_add_action (notification, "display", _("Open File"),
-					(NotifyActionCallback) launch_viewer_for_file, (gpointer) file_uri, (GFreeFunc) g_free);
+					(NotifyActionCallback) notification_launch_action_on_file_cb,
+					(gpointer) file_uri, (GFreeFunc) g_free);
+	// FIXME: to change on bug #498506 is fixed
+	notify_notification_add_action (notification, "reveal", _("Reveal File"),
+					(NotifyActionCallback) notification_launch_action_on_file_cb,
+					(gpointer) file_uri, (GFreeFunc) g_free);
 	
 	g_signal_connect (G_OBJECT (notification), "closed", G_CALLBACK (on_close_notification), notification);
 
