evince r3117 - in trunk: . shell



Author: carlosgc
Date: Sun Aug 24 14:23:23 2008
New Revision: 3117
URL: http://svn.gnome.org/viewvc/evince?rev=3117&view=rev

Log:
2008-08-24  Carlos Garcia Campos  <carlosgc gnome org>

	* shell/ev-window.c: (ev_window_setup_document),
	(ev_window_set_document), (ev_window_dispose):

	Remove the idle function for setting the document up when the
	window is destroyed. Fixes bug #549163.


Modified:
   trunk/ChangeLog
   trunk/shell/ev-window.c

Modified: trunk/shell/ev-window.c
==============================================================================
--- trunk/shell/ev-window.c	(original)
+++ trunk/shell/ev-window.c	Sun Aug 24 14:23:23 2008
@@ -166,6 +166,7 @@
 	gboolean unlink_temp_file;
 	gboolean in_reload;
 	EvFileMonitor *monitor;
+	guint setup_document_idle;
 	
 	EvDocument *document;
 	EvHistory *history;
@@ -1138,6 +1139,8 @@
 	EvDocument *document = ev_window->priv->document;
 	EvSidebar *sidebar = EV_SIDEBAR (ev_window->priv->sidebar);
 	GtkAction *action;
+
+	ev_window->priv->setup_document_idle = 0;
 	
 	if (EV_IS_DOCUMENT_FIND (document)) {
 		g_signal_connect_object (G_OBJECT (document),
@@ -1203,7 +1206,9 @@
 					   _("The document contains no pages"));
 	}
 
-	g_idle_add ((GSourceFunc)ev_window_setup_document, ev_window);
+	if (ev_window->priv->setup_document_idle > 0)
+		g_source_remove (ev_window->priv->setup_document_idle);
+	ev_window->priv->setup_document_idle = g_idle_add ((GSourceFunc)ev_window_setup_document, ev_window);
 }
 
 static void
@@ -4168,6 +4173,11 @@
 	}
 #endif /* ENABLE_DBUS */
 
+	if (priv->setup_document_idle > 0) {
+		g_source_remove (priv->setup_document_idle);
+		priv->setup_document_idle = 0;
+	}
+	
 	if (priv->monitor) {
 		g_object_unref (priv->monitor);
 		priv->monitor = NULL;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]