summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRui Matos <tiagomatos@gmail.com>2015-01-07 16:09:30 +0100
committerRui Matos <tiagomatos@gmail.com>2015-01-07 16:15:46 +0100
commit08ff9ff6999157f25b10676fdb088b04ac6f190e (patch)
tree5358f273e869051331e1d84703f94632901607cc
parent8b5bc7375e031fe1f6faec8c45d54d0b84bc4ef5 (diff)
um-crop-area: Enforce a minimum size
Otherwise, if callers aren't careful, users could resize us so small that we'd crash inside gdk_pixbuf_scale() . https://bugzilla.gnome.org/show_bug.cgi?id=742530
-rw-r--r--libcheese/um-crop-area.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/libcheese/um-crop-area.c b/libcheese/um-crop-area.c
index b8bc6627..6a4327eb 100644
--- a/libcheese/um-crop-area.c
+++ b/libcheese/um-crop-area.c
@@ -850,6 +850,15 @@ um_crop_area_button_release_event (GtkWidget *widget,
}
static void
+um_crop_area_set_size_request (UmCropArea *area)
+{
+ UmCropAreaPrivate *priv = um_crop_area_get_instance_private (area);
+ gtk_widget_set_size_request (GTK_WIDGET (area),
+ priv->base_width,
+ priv->base_height);
+}
+
+static void
um_crop_area_finalize (GObject *object)
{
UmCropAreaPrivate *priv = um_crop_area_get_instance_private (UM_CROP_AREA (object));
@@ -901,6 +910,8 @@ um_crop_area_init (UmCropArea *area)
priv->base_width = 48;
priv->base_height = 48;
priv->aspect = 1;
+
+ um_crop_area_set_size_request (area);
}
/*
@@ -1005,6 +1016,8 @@ um_crop_area_set_min_size (UmCropArea *area,
priv->base_width = width;
priv->base_height = height;
+ um_crop_area_set_size_request (area);
+
if (priv->aspect > 0) {
priv->aspect = priv->base_width / (gdouble)priv->base_height;
}