aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPřemysl Eric Janouch <p@janouch.name>2021-09-16 19:58:34 +0200
committerPřemysl Eric Janouch <p@janouch.name>2021-09-16 20:14:06 +0200
commitddcc878424ebb8879ace2bd8238b7bd92d7143cf (patch)
tree62dbd5ac03a8ca2276d5999013418f2dd4b19162
parenta6982bcc3bf7dce09be61eb09fba946ef5c92b30 (diff)
downloadfiv-ddcc878424ebb8879ace2bd8238b7bd92d7143cf.tar.gz
fiv-ddcc878424ebb8879ace2bd8238b7bd92d7143cf.tar.xz
fiv-ddcc878424ebb8879ace2bd8238b7bd92d7143cf.zip
Make the background black, center the image
It might be a good idea to make the colour adjustable, at least being able to switch to white, for certain partly-transparent pictures.
-rw-r--r--fastiv-view.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/fastiv-view.c b/fastiv-view.c
index a692285..d06dc57 100644
--- a/fastiv-view.c
+++ b/fastiv-view.c
@@ -88,8 +88,25 @@ fastiv_view_draw(GtkWidget *widget, cairo_t *cr)
if (!self->surface)
return TRUE;
+ // TODO(p): Make this adjustable later.
+ cairo_set_source_rgb(cr, 0, 0, 0);
+ cairo_paint(cr);
+
+ GtkAllocation allocation;
+ gtk_widget_get_allocation(widget, &allocation);
+
+ int w = cairo_image_surface_get_width(self->surface);
+ int h = cairo_image_surface_get_height(self->surface);
+
+ double x = 0;
+ double y = 0;
+ if (w < allocation.width)
+ x = (allocation.width - w) / 2;
+ if (h < allocation.height)
+ y = (allocation.height - h) / 2;
+
// TODO(p): Times the zoom.
- cairo_set_source_surface(cr, self->surface, 0, 0);
+ cairo_set_source_surface(cr, self->surface, x, y);
cairo_paint(cr);
return TRUE;
}