eog r4978 - in trunk: . src
- From: csaavedra svn gnome org
- To: svn-commits-list gnome org
- Subject: eog r4978 - in trunk: . src
- Date: Mon, 2 Feb 2009 14:52:36 +0000 (UTC)
Author: csaavedra
Date: Mon Feb 2 14:52:36 2009
New Revision: 4978
URL: http://svn.gnome.org/viewvc/eog?rev=4978&view=rev
Log:
2009-02-02 Claudio Saavedra <csaavedra igalia com>
* src/eog-jobs.c: (eog_job_thumbnail_run): Update
to the changes below.
* src/eog-thumbnail.c: (eog_thumbnail_add_frame),
(eog_thumbnail_fit_to_size): Do not modify thumbnails in-place,
return a new object instead.
* src/eog-thumbnail.h: Update headers.
Fixes bug #569855 (Joaquim Rocha)
Modified:
trunk/ChangeLog
trunk/src/eog-jobs.c
trunk/src/eog-thumbnail.c
trunk/src/eog-thumbnail.h
Modified: trunk/src/eog-jobs.c
==============================================================================
--- trunk/src/eog-jobs.c (original)
+++ trunk/src/eog-jobs.c Mon Feb 2 14:52:36 2009
@@ -194,6 +194,7 @@
{
gchar *orig_width, *orig_height;
gint width, height;
+ GdkPixbuf *pixbuf;
g_return_if_fail (EOG_IS_JOB_THUMBNAIL (job));
@@ -213,8 +214,10 @@
orig_width = g_strdup (gdk_pixbuf_get_option (job->thumbnail, "tEXt::Thumb::Image::Width"));
orig_height = g_strdup (gdk_pixbuf_get_option (job->thumbnail, "tEXt::Thumb::Image::Height"));
- eog_thumbnail_fit_to_size (&job->thumbnail, EOG_LIST_STORE_THUMB_SIZE);
- eog_thumbnail_add_frame (&job->thumbnail);
+ pixbuf = eog_thumbnail_fit_to_size (job->thumbnail, EOG_LIST_STORE_THUMB_SIZE);
+ g_object_unref (job->thumbnail);
+ job->thumbnail = eog_thumbnail_add_frame (pixbuf);
+ g_object_unref (pixbuf);
if (orig_width) {
sscanf (orig_width, "%i", &width);
Modified: trunk/src/eog-thumbnail.c
==============================================================================
--- trunk/src/eog-thumbnail.c (original)
+++ trunk/src/eog-thumbnail.c Mon Feb 2 14:52:36 2009
@@ -390,15 +390,15 @@
return result_pixbuf;
}
-void
-eog_thumbnail_add_frame (GdkPixbuf **thumbnail)
+GdkPixbuf *
+eog_thumbnail_add_frame (GdkPixbuf *thumbnail)
{
GdkPixbuf *result_pixbuf;
gint source_width, source_height;
gint dest_width, dest_height;
- source_width = gdk_pixbuf_get_width (*thumbnail);
- source_height = gdk_pixbuf_get_height (*thumbnail);
+ source_width = gdk_pixbuf_get_width (thumbnail);
+ source_height = gdk_pixbuf_get_height (thumbnail);
dest_width = source_width + 9;
dest_height = source_height + 9;
@@ -409,25 +409,23 @@
dest_height,
FALSE);
- gdk_pixbuf_copy_area (*thumbnail,
+ gdk_pixbuf_copy_area (thumbnail,
0, 0,
source_width,
source_height,
result_pixbuf,
3, 3);
- g_object_unref (*thumbnail);
-
- *thumbnail = result_pixbuf;
+ return result_pixbuf;
}
-void
-eog_thumbnail_fit_to_size (GdkPixbuf **thumbnail, gint dimension)
+GdkPixbuf *
+eog_thumbnail_fit_to_size (GdkPixbuf *thumbnail, gint dimension)
{
gint width, height;
- width = gdk_pixbuf_get_width (*thumbnail);
- height = gdk_pixbuf_get_height (*thumbnail);
+ width = gdk_pixbuf_get_width (thumbnail);
+ height = gdk_pixbuf_get_height (thumbnail);
if (width > dimension || height > dimension) {
GdkPixbuf *result_pixbuf;
@@ -442,12 +440,11 @@
width = MAX (width * factor, 1);
height = MAX (height * factor, 1);
- result_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf (*thumbnail, width, height);
-
- g_object_unref (*thumbnail);
+ result_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf (thumbnail, width, height);
- *thumbnail = result_pixbuf;
+ return result_pixbuf;
}
+ return gdk_pixbuf_copy (thumbnail);
}
GdkPixbuf*
Modified: trunk/src/eog-thumbnail.h
==============================================================================
--- trunk/src/eog-thumbnail.h (original)
+++ trunk/src/eog-thumbnail.h Mon Feb 2 14:52:36 2009
@@ -32,10 +32,10 @@
void eog_thumbnail_init (void);
-void eog_thumbnail_fit_to_size (GdkPixbuf **thumbnail,
+GdkPixbuf* eog_thumbnail_fit_to_size (GdkPixbuf *thumbnail,
gint dimension);
-void eog_thumbnail_add_frame (GdkPixbuf **thumbnail);
+GdkPixbuf* eog_thumbnail_add_frame (GdkPixbuf *thumbnail);
GdkPixbuf* eog_thumbnail_load (EogImage *image,
GError **error);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]