[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