+static void
+ev_window_cmd_open_containing_folder (GtkAction *action, EvWindow *ev_window)
+{
+ GtkWidget *ev_window_widget;
+ GFile *file;
+ GFile *parent;
+
+ ev_window_widget = GTK_WIDGET (ev_window);
+
+ file = g_file_new_for_uri (ev_window->priv->uri);
+ parent = g_file_get_parent (file);
+
+ if (parent) {
+ char *parent_uri;
+
+ parent_uri = g_file_get_uri (parent);
+ if (parent_uri) {
+ GdkScreen *screen;
+ guint32 timestamp;
+ GError *error;
+
+ screen = gtk_widget_get_screen (ev_window_widget);
+ timestamp = gtk_get_current_event_time ();
+
+ error = NULL;
+ if (!gtk_show_uri (screen, parent_uri, timestamp, &error)) {
+ ev_window_error_message (ev_window, error, _("Could not open the containing folder"));
+ g_error_free (error);
+ }
+
+ g_free (parent_uri);
+ }
+ }
+
+ if (file)
+ g_object_unref (file);
+
+ if (parent)
+ g_object_unref (parent);
+
+}
+