diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-10-21 16:58:41 (GMT) |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2009-10-21 16:58:41 (GMT) |
commit | 1da8768a0a328717ddc9c0757f9338787434c11d (patch) | |
tree | aa48a21022a9d7a6273adaeb07ba298a40bffa8d /shell/ev-window.c | |
parent | 3a748f444dc7b60a99d00c5ed767dd5319e4ccde (diff) |
Use always a different process for every document
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 12 |
1 files changed, 7 insertions, 5 deletions
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); } |