compositor: Handle EXIF orientation for backgrounds

Apply the embedded EXIF orientation when the background is loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=783125
This commit is contained in:
Silvère Latchurié 2017-05-26 13:24:36 +02:00 committed by Florian Müllner
parent a4cef8586c
commit 8153c5b544

View File

@ -155,7 +155,7 @@ file_loaded (GObject *source_object,
CoglError *catch_error = NULL; CoglError *catch_error = NULL;
GTask *task; GTask *task;
CoglTexture *texture; CoglTexture *texture;
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf, *rotated;
int width, height, row_stride; int width, height, row_stride;
guchar *pixels; guchar *pixels;
gboolean has_alpha; gboolean has_alpha;
@ -173,6 +173,13 @@ file_loaded (GObject *source_object,
goto out; goto out;
} }
rotated = gdk_pixbuf_apply_embedded_orientation (pixbuf);
if (rotated != NULL)
{
g_object_unref (pixbuf);
pixbuf = rotated;
}
width = gdk_pixbuf_get_width (pixbuf); width = gdk_pixbuf_get_width (pixbuf);
height = gdk_pixbuf_get_height (pixbuf); height = gdk_pixbuf_get_height (pixbuf);
row_stride = gdk_pixbuf_get_rowstride (pixbuf); row_stride = gdk_pixbuf_get_rowstride (pixbuf);