Fixed bug where gui would crash when columns were resized.
[pspp-builds.git] / lib / gtksheet / gsheet-hetero-column.c
index 575fdc8a3858c6ba080220166fe424052cb10e01..e32f4f4aa2dbe583615c754b377f65d567989000 100644 (file)
@@ -116,8 +116,6 @@ g_sheet_hetero_column_get_width(const GSheetColumn *geom, gint i)
 static gint 
 g_sheet_hetero_column_get_sensitivity(const GSheetColumn *geom, gint u)
 {
-  GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom);
-
   return TRUE;
 }
 
@@ -125,27 +123,23 @@ g_sheet_hetero_column_get_sensitivity(const GSheetColumn *geom, gint u)
 static gint 
 g_sheet_hetero_column_get_visibility(const GSheetColumn *geom, gint u)
 {
-  GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom);
-
   return TRUE;
 }
 
 
 
-static const gchar *
+static gchar *
 g_sheet_hetero_column_get_button_label(const GSheetColumn *geom, gint u)
 {
   GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom);
-  
-  return hg->col[u].button.label;
+
+  return g_locale_to_utf8(hg->col[u].button.label, -1, 0, 0, 0);
 }
 
 
 static GtkJustification
 g_sheet_hetero_column_get_justification(const GSheetColumn *geom, gint u)
 {
-  GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geom);
-  
   return GTK_JUSTIFY_FILL;
 }
 
@@ -190,12 +184,23 @@ g_sheet_hetero_column_finalize (GObject           *object)
   g_free(hg->col);
 }
 
+static void 
+hetero_column_set_width(GSheetColumn *geo, gint i, gint size)
+{
+  GSheetHeteroColumn *hg = G_SHEET_HETERO_COLUMN(geo);
+
+  g_return_if_fail(i < hg->n_columns);
+
+  hg->col[i].width = size;
+}
+
+
 
 static void
 g_sheet_column_init (GSheetColumnIface *iface)
 {
   iface->get_width = g_sheet_hetero_column_get_width ;
-  iface->set_width = g_sheet_hetero_column_set_width ;
+  iface->set_width = hetero_column_set_width ;
   iface->get_sensitivity = g_sheet_hetero_column_get_sensitivity ;
   iface->get_visibility = g_sheet_hetero_column_get_visibility ;
   iface->get_justification = g_sheet_hetero_column_get_justification;
@@ -219,13 +224,14 @@ g_sheet_hetero_column_set_button_label(GSheetHeteroColumn *geo,
 
 
 
-void 
-g_sheet_hetero_column_set_width(GSheetHeteroColumn *geo,
-                                     gint i, gint size)
+
+inline void 
+g_sheet_hetero_column_set_width(GSheetHeteroColumn *geo, gint i, gint size)
 {
-  g_return_if_fail(i < geo->n_columns);
+  GSheetColumn *iface = G_SHEET_COLUMN(geo);
 
-  geo->col[i].width = size;
+  hetero_column_set_width(iface, i, size);
 }
 
 
+