Merge "master" into "psppsheet" to obtain bug fixes from "master".
[pspp] / src / ui / gui / pspp-sheet-view.c
index 51ceafcc6f4333c052e6c6ba14b25bef6c88ef03..c569d20403c201d967cbe7832349f71452141901 100644 (file)
@@ -1266,7 +1266,6 @@ static void
 pspp_sheet_view_finalize (GObject *object)
 {
   PsppSheetView *tree_view = PSPP_SHEET_VIEW (object);
-  GList *list;
 
   pspp_sheet_view_stop_editing (tree_view, TRUE);
 
@@ -1519,6 +1518,8 @@ pspp_sheet_view_unrealize (GtkWidget *widget)
   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);
@@ -1595,8 +1596,6 @@ pspp_sheet_view_unrealize (GtkWidget *widget)
        }
       tree_view->priv->columns = NULL;
     }
-
-  GTK_WIDGET_CLASS (pspp_sheet_view_parent_class)->unrealize (widget);
 }
 
 /* GtkWidget::size_request helper */
@@ -5361,6 +5360,9 @@ do_presize_handler (PsppSheetView *tree_view)
   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);