From 1da8768a0a328717ddc9c0757f9338787434c11d Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Wed, 21 Oct 2009 16:58:41 +0000 Subject: Use always a different process for every document --- (limited to 'shell/ev-window.c') diff --git a/shell/ev-window.c b/shell/ev-window.c index b4133ad..f4974e3 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -310,6 +310,8 @@ static void ev_window_media_player_key_pressed (EvWindow *windo gpointer user_data); static void ev_window_save_print_page_setup (EvWindow *window); +static guint ev_window_n_copies = 0; + G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW) static void @@ -2129,6 +2131,8 @@ ev_window_open_copy_at_dest (EvWindow *window, { EvWindow *new_window = EV_WINDOW (ev_window_new ()); + ev_window_n_copies++; + if (window->priv->metadata) new_window->priv->metadata = g_object_ref (window->priv->metadata); ev_window_open_document (new_window, @@ -4549,14 +4553,12 @@ ev_window_drag_data_received (GtkWidget *widget, static void ev_window_finalize (GObject *object) { - GList *windows = ev_application_get_windows (EV_APP); - - if (windows == NULL) { + if (ev_window_n_copies == 0) { ev_application_shutdown (EV_APP); } else { - g_list_free (windows); + ev_window_n_copies--; } - + G_OBJECT_CLASS (ev_window_parent_class)->finalize (object); } -- cgit v0.9.1