Remove almost all instances of GtkCellRenderer in code (all but dnd icon
Fri May 25 19:04:17 2001 Jonathan Blandford <jrb@redhat.com> * gtk/gtktreeview.c (gtk_tree_view_calc_size): Remove almost all instances of GtkCellRenderer in code (all but dnd icon code). Virtualized in GtkTreeViewColumn. Now I need to move focus in there, and I can do multiple Cells per column. * gtk/gtktreeviewcolumn.c: Proxy all cell calls correctly * gtk/gtktreemodel.c (gtk_tree_row_reference_new_proxy): fix bug when model was unreffed prior to removing the row reference.
This commit is contained in:
committed by
Jonathan Blandford
parent
e05472202d
commit
710fb020bf
@ -1407,6 +1407,8 @@ gtk_tree_row_reference_new_proxy (GObject *proxy,
|
||||
|
||||
reference = g_new (GtkTreeRowReference, 1);
|
||||
|
||||
g_object_ref (proxy);
|
||||
g_object_ref (model);
|
||||
reference->proxy = proxy;
|
||||
reference->model = model;
|
||||
reference->path = gtk_tree_path_copy (path);
|
||||
@ -1452,27 +1454,26 @@ gtk_tree_row_reference_free (GtkTreeRowReference *reference)
|
||||
|
||||
g_return_if_fail (reference != NULL);
|
||||
|
||||
if (reference->proxy)
|
||||
refs = g_object_get_data (G_OBJECT (reference->proxy), ROW_REF_DATA_STRING);
|
||||
|
||||
if (refs == NULL)
|
||||
{
|
||||
refs = g_object_get_data (G_OBJECT (reference->proxy), ROW_REF_DATA_STRING);
|
||||
|
||||
if (refs == NULL)
|
||||
{
|
||||
g_warning (G_STRLOC": bad row reference, proxy has no outstanding row references");
|
||||
return;
|
||||
}
|
||||
|
||||
refs->list = g_slist_remove (refs->list, reference);
|
||||
|
||||
if (refs->list == NULL)
|
||||
{
|
||||
disconnect_ref_callbacks (reference->model);
|
||||
g_object_set_data (G_OBJECT (reference->proxy),
|
||||
ROW_REF_DATA_STRING,
|
||||
NULL);
|
||||
}
|
||||
g_warning (G_STRLOC": bad row reference, proxy has no outstanding row references");
|
||||
return;
|
||||
}
|
||||
|
||||
refs->list = g_slist_remove (refs->list, reference);
|
||||
|
||||
if (refs->list == NULL)
|
||||
{
|
||||
disconnect_ref_callbacks (reference->model);
|
||||
g_object_set_data (G_OBJECT (reference->proxy),
|
||||
ROW_REF_DATA_STRING,
|
||||
NULL);
|
||||
}
|
||||
g_object_unref (reference->proxy);
|
||||
g_object_unref (reference->model);
|
||||
|
||||
if (reference->path)
|
||||
gtk_tree_path_free (reference->path);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user