X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-application.c;h=c0a7ea2ba9c5eac017ff2f4949813649ca846143;hb=a61c4406e2cd4dc8f2d3a981e73dc09ae21e6ece;hp=1b64c3dbc7701616470dd399faca4dc64cb4fa9e;hpb=30582eef6d8c325d026e7db0301921ddba21dfec;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index 1b64c3db..c0a7ea2b 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -73,12 +73,22 @@ ev_application_register_service (EvApplication *application) DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); +#if DBUS_VERSION >= 60 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); } +#endif 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 -#ifdef ENABLE_COMICS - GtkFileFilter *comics_filter; -#endif 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); - 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; } @@ -307,7 +314,9 @@ ev_application_shutdown (EvApplication *application) application->recent_model = NULL; } + g_free (application->last_chooser_uri); g_object_unref (application); + gtk_main_quit (); } @@ -379,4 +388,14 @@ void ev_application_save_toolbars_model (EvApplication *application) 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; +}