int width;
g_return_val_if_fail (data_store != NULL, FALSE);
+ g_return_val_if_fail (data_store->datasheet != NULL, FALSE);
if (!get_tooltip_location (widget, tooltip, wx, wy, &row, &column))
return FALSE;
{
PsppireDataStore *store = store_;
GValue gvalue = { 0, };
- gint row;
+ gint row = GPOINTER_TO_INT (iter->user_data);
- row = GPOINTER_TO_INT (iter->user_data);
+ g_return_if_fail (store->datasheet);
g_value_init (&gvalue, G_TYPE_INT);
g_value_set_int (&gvalue, row + 1);
{
gint width;
g_object_set (G_OBJECT (renderer), "text", string, (void *) NULL);
- gtk_cell_renderer_get_size (renderer, GTK_WIDGET (treeview),
- NULL, NULL, NULL, &width, NULL);
+ gtk_cell_renderer_get_preferred_width (renderer, GTK_WIDGET (treeview),
+ NULL, &width);
+
return width;
}
{
gtk_widget_queue_resize (GTK_WIDGET (data_sheet));
data_sheet->scroll_to_bottom_signal =
- g_signal_connect (data_sheet, "size-request",
+ g_signal_connect (data_sheet, "size-allocate",
G_CALLBACK (scroll_to_bottom), NULL);
}
else
var = g_object_get_data (G_OBJECT (column), "variable");
g_return_if_fail (var != NULL);
- if (var_has_value_labels (var))
+ if (data_sheet->show_value_labels && var_has_value_labels (var))
{
cell = gtk_cell_renderer_combo_new ();
g_object_set (G_OBJECT (cell),
{
ds->show_value_labels = show_value_labels;
g_object_notify (G_OBJECT (ds), "value-labels");
- gtk_widget_queue_draw (GTK_WIDGET (ds));
- /* Make the cell being edited refresh too. */
- pspp_sheet_view_stop_editing (PSPP_SHEET_VIEW (ds), TRUE);
+ /* Pretend the model changed, to force the columns to be rebuilt.
+ Otherwise cell renderers won't get changed from combo boxes to text
+ entries or vice versa. */
+ g_object_notify (G_OBJECT (ds), "model");
}
}