diff options
| author | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2013-07-18 14:23:21 +0200 | 
|---|---|---|
| committer | Matthias Vogelgesang <matthias.vogelgesang@kit.edu> | 2013-07-18 15:08:40 +0200 | 
| commit | 6fcf60b5678e9602486d36462cc246454ae636d0 (patch) | |
| tree | 9d3652aab00c39e55f44dc4e2329362c762d3df2 | |
| parent | 9fdc54d27a8290b98d6fb7122af6beb5ab3b05db (diff) | |
| download | uca-6fcf60b5678e9602486d36462cc246454ae636d0.tar.gz uca-6fcf60b5678e9602486d36462cc246454ae636d0.tar.bz2 uca-6fcf60b5678e9602486d36462cc246454ae636d0.tar.xz uca-6fcf60b5678e9602486d36462cc246454ae636d0.zip  | |
Don't accept invalid values
| -rw-r--r-- | bin/gui/egg-histogram-view.c | 26 | 
1 files changed, 14 insertions, 12 deletions
diff --git a/bin/gui/egg-histogram-view.c b/bin/gui/egg-histogram-view.c index 912c2fa..6e35f74 100644 --- a/bin/gui/egg-histogram-view.c +++ b/bin/gui/egg-histogram-view.c @@ -62,7 +62,7 @@ enum      LAST_SIGNAL  }; -static GParamSpec *egg_histogram_view_properties[N_PROPERTIES] = { NULL, }; +static GParamSpec *properties[N_PROPERTIES] = { NULL, };  static guint egg_histogram_view_signals[LAST_SIGNAL] = { 0 }; @@ -289,9 +289,10 @@ egg_histogram_view_set_property (GObject *object,              {                  gdouble v = g_value_get_double (value); -                if (v > priv->max_value) +                if (v > priv->max_value) {                      g_warning ("Minimum value `%f' larger than maximum value `%f'",                                 v, priv->max_value); +                }                  else {                      priv->min_value = v;                      gtk_widget_queue_draw (GTK_WIDGET (object)); @@ -303,9 +304,10 @@ egg_histogram_view_set_property (GObject *object,              {                  gdouble v = g_value_get_double (value); -                if (v < priv->min_value) +                if (v < priv->min_value) {                      g_warning ("Maximum value `%f' larger than minimum value `%f'",                                 v, priv->min_value); +                }                  else {                      priv->max_value = v;                      gtk_widget_queue_draw (GTK_WIDGET (object)); @@ -371,12 +373,12 @@ set_grab_value (EggHistogramView *view,      if (view->priv->grabbed == GRAB_MIN) {          view->priv->min_value = value;          g_object_notify_by_pspec (G_OBJECT (view), -                                  egg_histogram_view_properties[PROP_MINIMUM_BIN_VALUE]); +                                  properties[PROP_MINIMUM_BIN_VALUE]);      }      else {          view->priv->max_value = value;          g_object_notify_by_pspec (G_OBJECT (view), -                                  egg_histogram_view_properties[PROP_MAXIMUM_BIN_VALUE]); +                                  properties[PROP_MAXIMUM_BIN_VALUE]);      }  } @@ -397,10 +399,10 @@ egg_histogram_view_motion_notify (GtkWidget *widget,          coord = screen_to_histogram_coordinate (priv, &allocation, event->x); -        if (ABS (priv->max_value - priv->min_value) > 8.0) +        if (ABS (priv->max_value - priv->min_value) > 8.0 && coord > 0 && coord < priv->max) {              set_grab_value (view, coord); - -        gtk_widget_queue_draw (widget); +            gtk_widget_queue_draw (widget); +        }      }      else {          if (is_on_border (priv, &allocation, event->x)) @@ -474,22 +476,22 @@ egg_histogram_view_class_init (EggHistogramViewClass *klass)      widget_class->button_release_event = egg_histogram_view_button_release;      widget_class->motion_notify_event  = egg_histogram_view_motion_notify; -    egg_histogram_view_properties[PROP_MINIMUM_BIN_VALUE] = +    properties[PROP_MINIMUM_BIN_VALUE] =          g_param_spec_double ("minimum-bin-value",                               "Smallest possible bin value",                               "Smallest possible bin value, everything below is discarded.",                               0.0, G_MAXDOUBLE, 0.0,                               G_PARAM_READWRITE); -    egg_histogram_view_properties[PROP_MAXIMUM_BIN_VALUE] = +    properties[PROP_MAXIMUM_BIN_VALUE] =          g_param_spec_double ("maximum-bin-value",                               "Largest possible bin value",                               "Largest possible bin value, everything above is discarded.",                               0.0, G_MAXDOUBLE, 256.0,                               G_PARAM_READWRITE); -    g_object_class_install_property (object_class, PROP_MINIMUM_BIN_VALUE, egg_histogram_view_properties[PROP_MINIMUM_BIN_VALUE]); -    g_object_class_install_property (object_class, PROP_MAXIMUM_BIN_VALUE, egg_histogram_view_properties[PROP_MAXIMUM_BIN_VALUE]); +    g_object_class_install_property (object_class, PROP_MINIMUM_BIN_VALUE, properties[PROP_MINIMUM_BIN_VALUE]); +    g_object_class_install_property (object_class, PROP_MAXIMUM_BIN_VALUE, properties[PROP_MAXIMUM_BIN_VALUE]);      egg_histogram_view_signals[CHANGED] =          g_signal_new ("changed",  | 
