Updating branch refs/heads/master to 38afa7b699e52bfc321f0edc6d5ae5420ca3a8c8 (commit) from 8e59b71a19516f17d09dddb279b766df0b548746 (commit)
commit 38afa7b699e52bfc321f0edc6d5ae5420ca3a8c8 Author: Jérôme Guelfucci <jero...@xfce.org> Date: Mon Aug 3 11:41:22 2009 +0200 Improve the creation of the save dialog's thumbnail. The thumbnail's width and height now have a maximum of 150 pixels, if they are less than 150 pixels, use the screenshot itself as a thumbnail. ChangeLog | 12 ++++++++++++ lib/screenshooter-dialogs.c | 37 +++++++++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3b2c2c9..a2e66a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,18 @@ Fixed the Indonesian documentation sub-directory, the autotools scripts were incomplete. Updated Italian and Galician documentation translation. +2009-08-03 jeromeg + +Improve the creation of the save dialog's thumbnail. + +The thumbnail's width and height now have a maximum of 150 pixels, if +they are less than 150 pixels, use the screenshot itself as a +thumbnail. + +2009-08-02 jeromeg + +Always show the save dialog when we save a screenshot. + 2009-08-02 jeromeg Remove the option to take several screenshots in a row. diff --git a/lib/screenshooter-dialogs.c b/lib/screenshooter-dialogs.c index 868e72a..2f109e4 100644 --- a/lib/screenshooter-dialogs.c +++ b/lib/screenshooter-dialogs.c @@ -72,6 +72,8 @@ populate_liststore (GtkListStore *liststore); static void set_default_item (GtkWidget *combobox, ScreenshotData *sd); +static GdkPixbuf +*screenshot_get_thumbnail (GdkPixbuf *screenshot); static void cb_progress_upload (goffset current_num_bytes, goffset total_num_bytes, @@ -92,7 +94,7 @@ save_screenshot_to_remote_location (GdkPixbuf *screenshot, GFile *save_file); static gchar *save_screenshot_to (GdkPixbuf *screenshot, - gchar *save_uri); + gchar *save_uri); @@ -449,6 +451,33 @@ static void set_default_item (GtkWidget *combobox, ScreenshotData *sd) +static GdkPixbuf +*screenshot_get_thumbnail (GdkPixbuf *screenshot) +{ + gint width, height, i; + GdkPixbuf *thumbnail; + + width = gdk_pixbuf_get_width (screenshot); + height = gdk_pixbuf_get_height (screenshot); + + if (width > height) + i = width / 150; + else + i = height / 150; + + if (i == 0) + return gdk_pixbuf_copy (screenshot); + + thumbnail = gdk_pixbuf_scale_simple (screenshot, + width/i, + height/i, + GDK_INTERP_BILINEAR); + + return thumbnail; +} + + + static void cb_progress_upload (goffset current_num_bytes, goffset total_num_bytes, gpointer user_data) @@ -1154,11 +1183,7 @@ gchar gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (chooser), preview); - thumbnail = - gdk_pixbuf_scale_simple (screenshot, - gdk_pixbuf_get_width(screenshot)/5, - gdk_pixbuf_get_height(screenshot)/5, - GDK_INTERP_BILINEAR); + thumbnail = screenshot_get_thumbnail (screenshot); gtk_image_set_from_pixbuf (GTK_IMAGE (preview), thumbnail);
_______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits