pspp_sheet_view_finalize (GObject *object)
{
PsppSheetView *tree_view = PSPP_SHEET_VIEW (object);
- GList *list;
pspp_sheet_view_stop_editing (tree_view, TRUE);
tree_view->priv->selected = NULL;
}
- if (tree_view->priv->columns != NULL)
- {
- list = tree_view->priv->columns;
- while (list)
- {
- PsppSheetViewColumn *column;
- column = PSPP_SHEET_VIEW_COLUMN (list->data);
- list = list->next;
- pspp_sheet_view_remove_column (tree_view, column);
- }
- tree_view->priv->columns = NULL;
- }
tree_view->priv->prelight_node = -1;
PsppSheetViewPrivate *priv = tree_view->priv;
GList *list;
+ GTK_WIDGET_CLASS (pspp_sheet_view_parent_class)->unrealize (widget);
+
if (priv->scroll_timeout != 0)
{
g_source_remove (priv->scroll_timeout);
for (x = 0 ; x < 5 ; ++x)
g_object_unref (priv->grid_line_gc[x]);
- GTK_WIDGET_CLASS (pspp_sheet_view_parent_class)->unrealize (widget);
+ if (tree_view->priv->columns != NULL)
+ {
+ list = tree_view->priv->columns;
+ while (list)
+ {
+ PsppSheetViewColumn *column;
+ column = PSPP_SHEET_VIEW_COLUMN (list->data);
+ list = list->next;
+ pspp_sheet_view_remove_column (tree_view, column);
+ }
+ tree_view->priv->columns = NULL;
+ }
}
/* GtkWidget::size_request helper */
validate_visible_area (tree_view);
tree_view->priv->presize_handler_timer = 0;
+ if (! gtk_widget_get_realized (GTK_WIDGET (tree_view)))
+ return FALSE;
+
gtk_widget_size_request (GTK_WIDGET (tree_view), &requisition);
tree_view->priv->hadjustment->upper = MAX (tree_view->priv->hadjustment->upper, (gfloat)requisition.width);
}
if (tree_view->priv->n_columns == 0 &&
- pspp_sheet_view_get_headers_visible (tree_view))
+ pspp_sheet_view_get_headers_visible (tree_view) &&
+ tree_view->priv->header_window)
gdk_window_hide (tree_view->priv->header_window);
gtk_widget_queue_resize (GTK_WIDGET (tree_view));