diff options
Diffstat (limited to 'src/events/EventDirectoryItem.vala')
-rw-r--r-- | src/events/EventDirectoryItem.vala | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/events/EventDirectoryItem.vala b/src/events/EventDirectoryItem.vala index f316de7..f75a8e0 100644 --- a/src/events/EventDirectoryItem.vala +++ b/src/events/EventDirectoryItem.vala @@ -54,7 +54,21 @@ class EventDirectoryItem : CheckerboardItem { // scale and crop the center square of the media private static Gdk.Pixbuf get_paul_lynde(MediaSource media, Gdk.Rectangle paul_lynde) throws Error { - Gdk.Pixbuf pixbuf = media.get_preview_pixbuf(squared_scaling); + Gdk.Pixbuf pixbuf; + + try { + pixbuf = media.get_preview_pixbuf(squared_scaling); + } catch (Error error) { + ThumbnailCache.fetch_async_scaled(media, ThumbnailCache.Size.BIG, + new Dimensions(ThumbnailCache.Size.BIG, ThumbnailCache.Size.BIG), + ThumbnailCache.DEFAULT_INTERP, () => {}); + if (media is LibraryPhoto) { + LibraryPhoto photo = (LibraryPhoto) media; + pixbuf = photo.get_pixbuf(squared_scaling); + } else { + throw error; + } + } Dimensions thumbnail_dimensions = Dimensions.for_pixbuf(pixbuf); |