X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fgtksheet.c;h=942b0233117b4641a61b9dadccbec4fed9f51866;hb=5ee84736663824fe12474b78dace867e42893a14;hp=1118555df32e10b5acf3c5d9bd845a1b7753d4fb;hpb=880d5a149fbdfdc074f49f590cb8aca8457b2446;p=pspp-builds.git diff --git a/lib/gtksheet/gtksheet.c b/lib/gtksheet/gtksheet.c index 1118555d..942b0233 100644 --- a/lib/gtksheet/gtksheet.c +++ b/lib/gtksheet/gtksheet.c @@ -96,15 +96,10 @@ enum #define CELL_SPACING 1 #define DRAG_WIDTH 6 #define TIMEOUT_HOVER 300 -#define TIME_INTERVAL 8 #define COLUMN_MIN_WIDTH 10 -#define MINROWS 1 -#define MINCOLS 1 -#define MAXLENGTH 30 #define CELLOFFSET 4 #define DEFAULT_COLUMN_WIDTH 80 - static void gtk_sheet_update_primary_selection (GtkSheet *sheet); static void gtk_sheet_column_title_button_draw (GtkSheet *sheet, gint column); @@ -2445,7 +2440,10 @@ gtk_sheet_dispose (GObject *object) if (sheet->column_geometry) g_object_unref (sheet->column_geometry); g_object_unref (sheet->entry_container); + sheet->entry_container = NULL; + g_object_unref (sheet->button); + sheet->button = NULL; /* unref adjustments */ if (sheet->hadjustment) @@ -2727,7 +2725,8 @@ gtk_sheet_unrealize (GtkWidget * widget) sheet->bg_gc = NULL; gtk_widget_unparent (sheet->entry_widget); - gtk_widget_unparent (sheet->button); + if (sheet->button != NULL) + gtk_widget_unparent (sheet->button); if (GTK_WIDGET_CLASS (parent_class)->unrealize) (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); @@ -7844,7 +7843,7 @@ gtk_sheet_button_new (void) } -inline void +void gtk_sheet_button_free (GtkSheetButton *button) { if (!button) return ; @@ -7854,10 +7853,21 @@ gtk_sheet_button_free (GtkSheetButton *button) } +static void +append_cell_text (GString *string, const GtkSheet *sheet, gint r, gint c) +{ + gchar *celltext = gtk_sheet_cell_get_text (sheet, r, c); + + if ( NULL == celltext) + return; + + g_string_append (string, celltext); + g_free (celltext); +} + static GString * range_to_text (const GtkSheet *sheet) { - gchar *celltext = NULL; gint r, c; GString *string; @@ -7870,16 +7880,12 @@ range_to_text (const GtkSheet *sheet) { for (c = sheet->range.col0; c < sheet->range.coli; ++c) { - celltext = gtk_sheet_cell_get_text (sheet, r, c); - g_string_append (string, celltext); + append_cell_text (string, sheet, r, c); g_string_append (string, "\t"); - g_free (celltext); } - celltext = gtk_sheet_cell_get_text (sheet, r, c); - g_string_append (string, celltext); + append_cell_text (string, sheet, r, c); if ( r < sheet->range.rowi) g_string_append (string, "\n"); - g_free (celltext); } return string; @@ -7888,7 +7894,6 @@ range_to_text (const GtkSheet *sheet) static GString * range_to_html (const GtkSheet *sheet) { - gchar *celltext = NULL; gint r, c; GString *string; @@ -7906,10 +7911,8 @@ range_to_html (const GtkSheet *sheet) for (c = sheet->range.col0; c <= sheet->range.coli; ++c) { g_string_append (string, ""); - celltext = gtk_sheet_cell_get_text (sheet, r, c); - g_string_append (string, celltext); + append_cell_text (string, sheet, r, c); g_string_append (string, "\n"); - g_free (celltext); } g_string_append (string, "\n"); }