evince r3213 - in trunk: . shell
- From: carlosgc svn gnome org
- To: svn-commits-list gnome org
- Subject: evince r3213 - in trunk: . shell
- Date: Sat, 4 Oct 2008 17:20:23 +0000 (UTC)
Author: carlosgc
Date: Sat Oct 4 17:20:23 2008
New Revision: 3213
URL: http://svn.gnome.org/viewvc/evince?rev=3213&view=rev
Log:
2008-10-04 Carlos Garcia Campos <carlosgc gnome org>
* shell/ev-window.c: (launch_action):
Fix launching external applications for launch actions which seems
to be broken since the gio port. Fixes bug #554500.
Modified:
trunk/ChangeLog
trunk/shell/ev-window.c
Modified: trunk/shell/ev-window.c
==============================================================================
--- trunk/shell/ev-window.c (original)
+++ trunk/shell/ev-window.c Sat Oct 4 17:20:23 2008
@@ -4833,12 +4833,11 @@
launch_action (EvWindow *window, EvLinkAction *action)
{
const char *filename = ev_link_action_get_filename (action);
- const char *content_type;
GAppInfo *app_info;
- GFileInfo *file_info;
GFile *file;
- GList *file_list = NULL;
-
+ GList file_list = {NULL};
+ GError *error = NULL;
+
if (filename == NULL)
return;
@@ -4846,34 +4845,35 @@
file = g_file_new_for_path (filename);
} else {
GFile *base_file;
+ gchar *dir;
+
+ dir = g_path_get_dirname (window->priv->uri);
+ base_file = g_file_new_for_uri (dir);
+ g_free (dir);
- base_file = g_file_new_for_uri (window->priv->uri);
- file = g_file_resolve_relative_path (base_file,
- filename);
-
+ file = g_file_resolve_relative_path (base_file, filename);
g_object_unref (base_file);
}
-
- file_info = g_file_query_info (file,
- G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
- 0, NULL, NULL);
- if (file_info == NULL) {
+
+ app_info = g_file_query_default_handler (file, NULL, &error);
+ if (!app_info) {
+ /* FIXME: use ev_window_error_message */
+ g_warning ("%s", error->message);
g_object_unref (file);
+
return;
}
- content_type = g_file_info_get_content_type (file_info);
- app_info = g_app_info_get_default_for_type (content_type, TRUE);
-
- file_list = g_list_append (file_list, file);
+ file_list.data = file;
/* FIXME: should we use a GAppLaunchContext? */
- g_app_info_launch (app_info, file_list,
- NULL, NULL);
+ if (!g_app_info_launch (app_info, &file_list, NULL, &error)) {
+ /* FIXME: use ev_window_error_message */
+ g_warning ("%s", error->message);
+ g_error_free (error);
+ }
- g_list_free (file_list);
g_object_unref (app_info);
- g_object_unref (file_info);
g_object_unref (file);
/* According to the PDF spec filename can be an executable. I'm not sure
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]