Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-window.c
diff options
context:
space:
mode:
authorCarlos 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)
commit1da8768a0a328717ddc9c0757f9338787434c11d (patch)
treeaa48a21022a9d7a6273adaeb07ba298a40bffa8d /shell/ev-window.c
parent3a748f444dc7b60a99d00c5ed767dd5319e4ccde (diff)
Use always a different process for every document
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r--shell/ev-window.c12
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);
}