diff options
author | Rui Matos <tiagomatos@gmail.com> | 2015-01-07 16:09:30 +0100 |
---|---|---|
committer | Rui Matos <tiagomatos@gmail.com> | 2015-01-07 16:15:46 +0100 |
commit | 08ff9ff6999157f25b10676fdb088b04ac6f190e (patch) | |
tree | 5358f273e869051331e1d84703f94632901607cc | |
parent | 8b5bc7375e031fe1f6faec8c45d54d0b84bc4ef5 (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.c | 13 |
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; } |