[Goodies-commits] r3319 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Tue Oct 9 22:38:36 CEST 2007


Author: stephan
Date: 2007-10-09 20:38:36 +0000 (Tue, 09 Oct 2007)
New Revision: 3319

Modified:
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/picture_viewer.c
   ristretto/trunk/src/thumbnail_viewer.c
Log:
Support animated images



Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-10-09 19:10:19 UTC (rev 3318)
+++ ristretto/trunk/src/navigator.c	2007-10-09 20:38:36 UTC (rev 3319)
@@ -627,6 +627,12 @@
                 }
                 entry->thumb = gdk_pixbuf_scale_simple(pixbuf, size, size, GDK_INTERP_BILINEAR);
             }
+            else
+            {
+                thumbnail = thunar_vfs_path_dup_string(info->path);
+                entry->thumb = gdk_pixbuf_new_from_file_at_size(thumbnail, size, size, NULL);
+                g_free(thumbnail);
+            }
         }
         else
         {

Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c	2007-10-09 19:10:19 UTC (rev 3318)
+++ ristretto/trunk/src/picture_viewer.c	2007-10-09 20:38:36 UTC (rev 3319)
@@ -61,9 +61,6 @@
 static gboolean
 rstto_picture_viewer_refresh(RsttoPictureViewer *viewer);
 
-static void
-rstto_picture_viewer_update(RsttoPictureViewer *viewer);
-
 static gboolean
 rstto_picture_viewer_set_scroll_adjustments(RsttoPictureViewer *, GtkAdjustment *, GtkAdjustment *);
 
@@ -666,17 +663,26 @@
 static gboolean
 cb_rstto_picture_viewer_update_image(RsttoPictureViewer *viewer)
 {
-    gdouble sec;
+    gdk_pixbuf_animation_iter_advance(viewer->priv->iter, NULL);
+    if (viewer->priv->src_pixbuf)
+        gdk_pixbuf_unref(viewer->priv->src_pixbuf);
+    viewer->priv->src_pixbuf = gdk_pixbuf_animation_iter_get_pixbuf(viewer->priv->iter);
+    
+    if (viewer->priv->src_pixbuf)
+    {
+        gdk_pixbuf_ref(viewer->priv->src_pixbuf);
+    }
 
-    sec = g_timer_elapsed(viewer->priv->timer, NULL);
-    if (sec >= 0.250)
+    rstto_picture_viewer_refresh(viewer);
+    rstto_picture_viewer_paint(GTK_WIDGET(viewer));
+
+    gint time = gdk_pixbuf_animation_iter_get_delay_time(viewer->priv->iter);
+    if (time != -1)
     {
-        g_timer_stop(viewer->priv->timer);
-        viewer->priv->timeout_id = 0;
-        rstto_picture_viewer_update(viewer);
-        return FALSE;
+        viewer->priv->timeout_id = g_timeout_add(time, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
     }
-    return TRUE;
+    
+    return FALSE;
 }
 
 static void
@@ -730,40 +736,6 @@
 }
 
 static void
-rstto_picture_viewer_update(RsttoPictureViewer *viewer)
-{
-    RsttoNavigatorEntry *entry = rstto_navigator_get_file(viewer->priv->navigator);
-    GtkWidget *widget = GTK_WIDGET(viewer);
-    if(GTK_WIDGET_REALIZED(widget))
-    {
-        GdkCursor *cursor = gdk_cursor_new(GDK_WATCH);
-        gdk_window_set_cursor(widget->window, cursor);
-        gdk_cursor_unref(cursor);
-    }
-
-    if(viewer->priv->src_pixbuf)
-    {
-        g_object_unref(viewer->priv->src_pixbuf);
-        viewer->priv->src_pixbuf = NULL;
-    }
-
-    if(entry)
-    {
-        viewer->priv->src_pixbuf = rstto_navigator_entry_get_pixbuf(entry);
-        if (viewer->priv->src_pixbuf)
-            g_object_ref(viewer->priv->src_pixbuf);
-    }
-
-    if(GTK_WIDGET_REALIZED(widget))
-    {
-        rstto_picture_viewer_refresh(viewer);
-        rstto_picture_viewer_paint(GTK_WIDGET(viewer));
-
-        gdk_window_set_cursor(widget->window, NULL);
-    }
-}
-
-static void
 cb_rstto_picture_viewer_scroll_event (RsttoPictureViewer *viewer, GdkEventScroll *event)
 {
     RsttoNavigatorEntry *entry = rstto_navigator_get_file(viewer->priv->navigator);
@@ -867,7 +839,7 @@
     if (time != -1)
     {
         /* update frame */
-        g_debug("Timeout: %u\n", time);
+        viewer->priv->timeout_id = g_timeout_add(time, (GSourceFunc)cb_rstto_picture_viewer_update_image, viewer);
     }   
 }
 
@@ -913,6 +885,4 @@
     }
     rstto_picture_viewer_refresh(viewer);
     rstto_picture_viewer_paint(GTK_WIDGET(viewer));
-    if (0)
-        cb_rstto_picture_viewer_update_image(NULL);
 }

Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	2007-10-09 19:10:19 UTC (rev 3318)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-10-09 20:38:36 UTC (rev 3319)
@@ -146,8 +146,8 @@
 static void
 rstto_thumbnail_viewer_size_request(GtkWidget *widget, GtkRequisition *requisition)
 {
-    requisition->height = 120;
-    requisition->width = 120;
+    requisition->height = 70;
+    requisition->width = 70;
 }
 
 static void




More information about the Goodies-commits mailing list