X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-application.c;h=0719deda8c7a0f6826b0b77bcf6a0967b7845ac1;hb=bd26e60016e9e08c1784ee2d90695cc7eeb7daee;hp=2c6b5097296abb0790cdd89805b1c5cc6244248d;hpb=0f1c723ad2fe48a0f22e32619985f93ebb2e02ef;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index 2c6b5097..0719deda 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ @@ -408,7 +408,17 @@ ev_spawn (const char *uri, gboolean res; GError *error = NULL; +#ifdef G_OS_WIN32 +{ + gchar *dir; + + dir = g_win32_get_package_installation_directory_of_module (NULL); + argv[arg++] = g_build_filename (dir, "bin", "evince", NULL); + g_free (dir); +} +#else argv[arg++] = g_build_filename (BINDIR, "evince", NULL); +#endif /* Page label */ if (dest) { @@ -600,6 +610,10 @@ ev_application_open_uri_in_window (EvApplication *application, const gchar *search_string, guint timestamp) { +#ifdef GDK_WINDOWING_X11 + GdkWindow *gdk_window; +#endif + if (screen) { ev_stock_icons_set_screen (screen); gtk_window_set_screen (GTK_WINDOW (ev_window), screen); @@ -609,13 +623,15 @@ ev_application_open_uri_in_window (EvApplication *application, we can restore window size without flickering */ ev_window_open_uri (ev_window, uri, dest, mode, search_string); - if (!GTK_WIDGET_REALIZED (GTK_WIDGET (ev_window))) + if (!gtk_widget_get_realized (GTK_WIDGET (ev_window))) gtk_widget_realize (GTK_WIDGET (ev_window)); #ifdef GDK_WINDOWING_X11 + gdk_window = gtk_widget_get_window (GTK_WIDGET (ev_window)); + if (timestamp <= 0) - timestamp = gdk_x11_get_server_time (GTK_WIDGET (ev_window)->window); - gdk_x11_window_set_user_time (GTK_WIDGET (ev_window)->window, timestamp); + timestamp = gdk_x11_get_server_time (gdk_window); + gdk_x11_window_set_user_time (gdk_window, timestamp); ev_document_fc_mutex_lock (); gtk_window_present (GTK_WINDOW (ev_window)); @@ -693,19 +709,24 @@ ev_application_open_window (EvApplication *application, guint32 timestamp) { GtkWidget *new_window = ev_window_new (); +#ifdef GDK_WINDOWING_X11 + GdkWindow *gdk_window; +#endif if (screen) { ev_stock_icons_set_screen (screen); gtk_window_set_screen (GTK_WINDOW (new_window), screen); } - if (!GTK_WIDGET_REALIZED (new_window)) + if (!gtk_widget_get_realized (new_window)) gtk_widget_realize (new_window); #ifdef GDK_WINDOWING_X11 + gdk_window = gtk_widget_get_window (GTK_WIDGET (new_window)); + if (timestamp <= 0) - timestamp = gdk_x11_get_server_time (new_window->window); - gdk_x11_window_set_user_time (new_window->window, timestamp); + timestamp = gdk_x11_get_server_time (gdk_window); + gdk_x11_window_set_user_time (gdk_window, timestamp); gtk_window_present (GTK_WINDOW (new_window)); #else @@ -843,6 +864,9 @@ ev_application_shutdown (EvApplication *application) ev_application_accel_map_save (application); + g_object_unref (application->scr_saver); + application->scr_saver = NULL; + #ifdef ENABLE_DBUS if (application->keys) { g_object_unref (application->keys); @@ -884,10 +908,6 @@ ev_application_init (EvApplication *ev_application) "evince", NULL); - /* FIXME: why make this fatal? */ - if (!ev_dir_ensure_exists (ev_application->dot_dir, 0700, NULL)) - exit (1); - #ifdef G_OS_WIN32 { gchar *dir; @@ -904,13 +924,14 @@ ev_application_init (EvApplication *ev_application) ev_application_accel_map_load (ev_application); + ev_application->scr_saver = totem_scrsaver_new (); + #ifdef ENABLE_DBUS ev_application->connection = dbus_g_bus_get (DBUS_BUS_STARTER, &error); if (ev_application->connection) { dbus_g_connection_register_g_object (ev_application->connection, APPLICATION_DBUS_OBJECT_PATH, G_OBJECT (ev_application)); - ev_application->scr_saver = totem_scrsaver_new (ev_application->connection); } else { g_warning ("Error connection to DBus: %s\n", error->message); g_error_free (error); @@ -986,20 +1007,22 @@ ev_application_get_filechooser_uri (EvApplication *application, void ev_application_screensaver_enable (EvApplication *application) { - if (application->scr_saver) - totem_scrsaver_enable (application->scr_saver); + totem_scrsaver_enable (application->scr_saver); } void ev_application_screensaver_disable (EvApplication *application) { - if (application->scr_saver) - totem_scrsaver_disable (application->scr_saver); + totem_scrsaver_disable (application->scr_saver); } const gchar * -ev_application_get_dot_dir (EvApplication *application) +ev_application_get_dot_dir (EvApplication *application, + gboolean create) { + if (create) + g_mkdir_with_parents (application->dot_dir, 0700); + return application->dot_dir; }