]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-application.c
Allow build from different dir
[evince.git] / shell / ev-application.c
index 1b64c3dbc7701616470dd399faca4dc64cb4fa9e..c0a7ea2ba9c5eac017ff2f4949813649ca846143 100644 (file)
@@ -73,12 +73,22 @@ ev_application_register_service (EvApplication *application)
                                                  DBUS_PATH_DBUS,
                                                  DBUS_INTERFACE_DBUS);
 
                                                  DBUS_PATH_DBUS,
                                                  DBUS_INTERFACE_DBUS);
 
+#if DBUS_VERSION >= 60 
        if (!org_freedesktop_DBus_request_name (driver_proxy,
                                                APPLICATION_SERVICE_NAME,
        if (!org_freedesktop_DBus_request_name (driver_proxy,
                                                APPLICATION_SERVICE_NAME,
+                                               DBUS_NAME_FLAG_DO_NOT_QUEUE,
+                                               &request_name_result, &err)) {
+               g_warning ("Service registration failed.");
+               g_clear_error (&err);
+       }
+#else
+       if (!org_freedesktop_DBus_request_name (driver_proxy,
+                                               APPLICATION_SERVICE_NAME,
                                                0, &request_name_result, &err)) {
                g_warning ("Service registration failed.");
                g_clear_error (&err);
        }
                                                0, &request_name_result, &err)) {
                g_warning ("Service registration failed.");
                g_clear_error (&err);
        }
+#endif 
 
        if (request_name_result == DBUS_REQUEST_NAME_REPLY_EXISTS) {
                return FALSE;
 
        if (request_name_result == DBUS_REQUEST_NAME_REPLY_EXISTS) {
                return FALSE;
@@ -91,9 +101,6 @@ ev_application_register_service (EvApplication *application)
        dbus_g_object_type_install_info (EV_TYPE_APPLICATION,
                                         &dbus_glib_ev_application_object_info);
 #endif
        dbus_g_object_type_install_info (EV_TYPE_APPLICATION,
                                         &dbus_glib_ev_application_object_info);
 #endif
-#ifdef ENABLE_COMICS
-       GtkFileFilter *comics_filter;
-#endif
 
        dbus_g_connection_register_g_object (connection,
                                             "/org/gnome/evince/Evince",
 
        dbus_g_connection_register_g_object (connection,
                                             "/org/gnome/evince/Evince",
@@ -217,7 +224,7 @@ ev_application_get_uri_window (EvApplication *application, const char *uri)
                        EvWindow *window = EV_WINDOW (l->data);
                        const char *window_uri = ev_window_get_uri (window);
 
                        EvWindow *window = EV_WINDOW (l->data);
                        const char *window_uri = ev_window_get_uri (window);
 
-                       if (window_uri && strcmp (window_uri, uri) == 0) {
+                       if (window_uri && strcmp (window_uri, uri) == 0 && !ev_window_is_empty (window)) {
                                uri_window = window;
                                break;
                        }
                                uri_window = window;
                                break;
                        }
@@ -307,7 +314,9 @@ ev_application_shutdown (EvApplication *application)
                application->recent_model = NULL;
        }
 
                application->recent_model = NULL;
        }
 
+       g_free (application->last_chooser_uri);
        g_object_unref (application);
        g_object_unref (application);
+       
        gtk_main_quit ();
 }
 
        gtk_main_quit ();
 }
 
@@ -379,4 +388,14 @@ void ev_application_save_toolbars_model (EvApplication *application)
                                 application->toolbars_file, "1.0");
 }
 
                                 application->toolbars_file, "1.0");
 }
 
+void ev_application_set_chooser_uri (EvApplication *application, gchar *uri)
+{
+       g_free (application->last_chooser_uri);
+       application->last_chooser_uri = g_strdup (uri);
+}
+
+const gchar* ev_application_get_chooser_uri (EvApplication *application)
+{
+       return application->last_chooser_uri;
+}