[Buoh-dev] CVS commit to /cvsroot/buoh/buoh/src by carlosgc



CVS commit to /cvsroot/buoh/buoh/src by carlosgc

Modified Files:
	buoh-comic-loader.c buoh-comic-loader.h buoh-view-comic.c 
Log Message:
2006-10-20  Carlos Garcia Campos  <carlosgc gnome org>
	* src/buoh-comic-loader.[ch]:
	* src/buoh-view-comic.c:
	Cancel current load as soon as possible. Cached comics don't need a
	pixbuf loader.

===================================================================
RCS file: /cvsroot/buoh/buoh/src/buoh-comic-loader.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- /cvsroot/buoh/buoh/src/buoh-comic-loader.c	2006/10/08 18:05:35	1.16
+++ /cvsroot/buoh/buoh/src/buoh-comic-loader.c	2006/10/20 16:57:09	1.17
@@ -302,8 +302,6 @@
 static void
 buoh_comic_loader_clear (BuohComicLoader *loader)
 {
-	g_return_if_fail (BUOH_IS_COMIC_LOADER (loader));
-
 	if (!loader->priv->job)
 		return;
 
@@ -335,7 +333,16 @@
 buoh_comic_loader_get_error (BuohComicLoader *loader,
 			     GError         **error)
 {
+	g_return_if_fail (BUOH_IS_COMIC_LOADER (loader));
+	
 	if (loader->priv->error)
 		*error = g_error_copy (loader->priv->error);
 }
 
+void
+buoh_comic_loader_cancel (BuohComicLoader *loader)
+{
+	g_return_if_fail (BUOH_IS_COMIC_LOADER (loader));
+
+	buoh_comic_loader_clear (loader);
+}
===================================================================
RCS file: /cvsroot/buoh/buoh/src/buoh-comic-loader.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- /cvsroot/buoh/buoh/src/buoh-comic-loader.h	2006/09/24 18:31:42	1.8
+++ /cvsroot/buoh/buoh/src/buoh-comic-loader.h	2006/10/20 16:57:09	1.9
@@ -64,6 +64,7 @@
 						gpointer         gdata);
 void             buoh_comic_loader_get_error   (BuohComicLoader *loader,
 						GError         **error);
+void             buoh_comic_loader_cancel      (BuohComicLoader *loader);
 
 G_END_DECLS
 
===================================================================
RCS file: /cvsroot/buoh/buoh/src/buoh-view-comic.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- /cvsroot/buoh/buoh/src/buoh-view-comic.c	2006/10/08 18:05:35	1.18
+++ /cvsroot/buoh/buoh/src/buoh-view-comic.c	2006/10/20 16:57:09	1.19
@@ -518,17 +518,8 @@
 	gtk_adjustment_set_value (hadjustment, 0.0);
 	gtk_adjustment_set_value (vadjustment, 0.0);
 
-	if (c_view->priv->pixbuf_loader) {
-		gdk_pixbuf_loader_close (c_view->priv->pixbuf_loader, NULL);
-		g_object_unref (c_view->priv->pixbuf_loader);
-	}
-	c_view->priv->pixbuf_loader = gdk_pixbuf_loader_new ();
-	g_signal_connect (G_OBJECT (c_view->priv->pixbuf_loader),
-			  "size-prepared",
-			  G_CALLBACK (buoh_view_comic_size_prepared),
-			  (gpointer) c_view);
-
-	c_view->priv->comic_data->len = 0;
+	if (GTK_WIDGET_REALIZED (GTK_WIDGET (c_view)))
+		gdk_window_set_cursor (GTK_WIDGET (c_view)->window, NULL);
 
 #if GTK_CHECK_VERSION(2,8,0)
 	gtk_image_clear (GTK_IMAGE (c_view->priv->image));
@@ -544,6 +535,9 @@
 {
 	BuohViewComic *c_view = BUOH_VIEW_COMIC (object);
 
+	/* Cancel current load if needed */
+	buoh_comic_loader_cancel (c_view->priv->comic_loader);
+	
 	buoh_view_comic_prepare_load (c_view);
 
 	buoh_view_comic_load (c_view);
@@ -716,6 +710,18 @@
 		cursor = gdk_cursor_new (GDK_WATCH);
 		gdk_window_set_cursor (GTK_WIDGET (c_view)->window, cursor);
 		gdk_cursor_unref (cursor);
+
+		if (c_view->priv->pixbuf_loader) {
+			gdk_pixbuf_loader_close (c_view->priv->pixbuf_loader, NULL);
+			g_object_unref (c_view->priv->pixbuf_loader);
+		}
+		c_view->priv->pixbuf_loader = gdk_pixbuf_loader_new ();
+		g_signal_connect (G_OBJECT (c_view->priv->pixbuf_loader),
+				  "size-prepared",
+				  G_CALLBACK (buoh_view_comic_size_prepared),
+				  (gpointer) c_view);
+
+		c_view->priv->comic_data->len = 0;
 		
 		buoh_comic_loader_load_comic (c_view->priv->comic_loader,
 					      c_view->priv->comic,


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