Prevent widths less than 1
authorJohn Darrington <john@darrington.wattle.id.au>
Mon, 8 Dec 2008 09:58:05 +0000 (18:58 +0900)
committerJohn Darrington <john@darrington.wattle.id.au>
Mon, 8 Dec 2008 09:58:05 +0000 (18:58 +0900)
lib/gtksheet/psppire-axis-impl.c
src/ui/gui/psppire-data-editor.c

index 48059c1a92600137e5a107c9f0872c3d8a1883a5..619e8238dab5c66a5f6d10c738c1351a4fa0de4d 100644 (file)
@@ -398,6 +398,7 @@ resize (PsppireAxis *axis, gint posn, glong size)
 
   struct axis_node *an;
   g_return_if_fail (posn >= 0);
+  g_return_if_fail (size > 0);
 
   /* Silently ignore this request if the position is greater than the number of
      units in the axis */
index 52f7ddfd579e52cc27456852ef67a75fcd9a6648..0fe4f68091b1d8395d8d7c8e0e1c437b56035e63 100644 (file)
@@ -347,8 +347,13 @@ rewidth_variable_callback (PsppireDict *dict, gint posn, gpointer data)
 
   const struct variable *var = psppire_dict_get_variable (dict, posn);
 
-  psppire_axis_impl_resize (de->haxis, posn, m_width *
-                           var_get_display_width (var));
+  gint var_width = var_get_display_width (var);
+
+  /* Don't allow zero width */
+  if ( var_width < 1 )
+    var_width = 1;
+
+  psppire_axis_impl_resize (de->haxis, posn, m_width * var_width);
 }