]> www.fi.muni.cz Git - evince.git/blobdiff - shell/main.c
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / shell / main.c
index 4ed0b05ebd42067d934d64b144599ba637c43df7..ab4b8dfb9ab06fbda8701680168cd052a576eb66 100644 (file)
@@ -41,9 +41,6 @@
 #endif /* WITH_SMCLIENT */
 
 #ifdef G_OS_WIN32
-#ifdef DATADIR
-#undef DATADIR
-#endif
 #include <io.h>
 #include <conio.h>
 #if !(_WIN32_WINNT >= 0x0500)
@@ -95,8 +92,6 @@ launch_previewer (void)
 {
        GString *cmd_str;
        gchar   *cmd;
-       gint     argc;
-       gchar  **argv;
        gboolean retval = FALSE;
        GError  *error = NULL;
 
@@ -126,16 +121,16 @@ launch_previewer (void)
        }
 
        cmd = g_string_free (cmd_str, FALSE);
-       g_shell_parse_argv (cmd, &argc, &argv, &error);
-       g_free (cmd);
-       
+
        if (!error) {
-               retval = gdk_spawn_on_screen (gdk_screen_get_default (),
-                                             NULL, argv, NULL,
-                                             G_SPAWN_SEARCH_PATH,
-                                             NULL, NULL, NULL,
-                                             &error);
-               g_strfreev (argv);
+               GAppInfo *app;
+
+               app = g_app_info_create_from_commandline (cmd, NULL, 0, &error);
+
+               if (app != NULL) {
+                       retval = g_app_info_launch (app, NULL, NULL, &error);
+                       g_object_unref (app);
+               }
        }
 
        if (error) {
@@ -143,6 +138,8 @@ launch_previewer (void)
                g_error_free (error);
        }
 
+       g_free (cmd);
+
        return retval;
 }
 
@@ -232,33 +229,6 @@ load_files (const char **files)
         }
 }
 
-static gchar*
-ev_get_locale_dir ()
-{
-#ifdef G_OS_WIN32
-       gchar *install_dir = NULL, *locale_dir;
-       gchar *retval = NULL;
-
-       install_dir =
-           g_win32_get_package_installation_directory_of_module (NULL);
-
-       if (install_dir) {
-               locale_dir = g_build_filename (install_dir,
-                                       "share", "locale", NULL);
-               retval = g_win32_locale_filename_from_utf8 (locale_dir);
-               g_free (install_dir);
-               g_free (locale_dir);
-       }
-
-       if (retval)
-               return retval;
-       else
-               return g_strdup ("");
-#else
-       return g_strdup (GNOMELOCALEDIR);
-#endif
-}
-
 int
 main (int argc, char *argv[])
 {
@@ -296,9 +266,7 @@ main (int argc, char *argv[])
 
 #ifdef ENABLE_NLS
        /* Initialize the i18n stuff */
-       gchar *tmp = ev_get_locale_dir ();
-       bindtextdomain (GETTEXT_PACKAGE, tmp);
-       g_free (tmp);
+       bindtextdomain (GETTEXT_PACKAGE, ev_get_locale_dir());
        bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
        textdomain (GETTEXT_PACKAGE);
 #endif