window: Apply buffer_scale automatically in widget_cairo_create
authorAlexander Larsson <alexl@redhat.com>
Wed, 22 May 2013 12:41:29 +0000 (14:41 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 22 May 2013 20:17:41 +0000 (16:17 -0400)
clients/window.c

index 60b78a5..858ba77 100644 (file)
@@ -1650,11 +1650,13 @@ widget_cairo_update_transform(struct widget *widget, cairo_t *cr)
        enum wl_output_transform transform;
        int surface_width, surface_height;
        int translate_x, translate_y;
+       uint32_t scale;
 
        surface_width = surface->allocation.width;
        surface_height = surface->allocation.height;
 
        transform = surface->buffer_transform;
+       scale = surface->buffer_scale;
 
        switch (transform) {
        case WL_OUTPUT_TRANSFORM_FLIPPED:
@@ -1712,6 +1714,7 @@ widget_cairo_update_transform(struct widget *widget, cairo_t *cr)
                break;
        }
 
+       cairo_scale(cr, scale, scale);
        cairo_translate(cr, translate_x, translate_y);
        cairo_rotate(cr, angle);
        cairo_transform(cr, &m);