a11y: Don't create fake cell renderers
This commit is contained in:
@ -604,10 +604,10 @@ gtk_tree_view_accessible_ref_child (AtkObject *obj,
|
|||||||
|
|
||||||
renderer_list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
|
renderer_list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
|
||||||
|
|
||||||
/* If there are more than one renderer in the list,
|
/* If there is not exactly one renderer in the list,
|
||||||
* make a container
|
* make a container
|
||||||
*/
|
*/
|
||||||
if (renderer_list && renderer_list->next)
|
if (renderer_list == NULL || renderer_list->next)
|
||||||
{
|
{
|
||||||
GtkCellAccessible *container_cell;
|
GtkCellAccessible *container_cell;
|
||||||
|
|
||||||
@ -628,34 +628,6 @@ gtk_tree_view_accessible_ref_child (AtkObject *obj,
|
|||||||
|
|
||||||
child = NULL;
|
child = NULL;
|
||||||
|
|
||||||
/* Now we make a fake cell_renderer if there is no cell
|
|
||||||
* in renderer_list
|
|
||||||
*/
|
|
||||||
if (renderer_list == NULL)
|
|
||||||
{
|
|
||||||
GtkCellRenderer *fake_renderer;
|
|
||||||
|
|
||||||
fake_renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, NULL);
|
|
||||||
child = _gtk_text_cell_accessible_new ();
|
|
||||||
cell = GTK_CELL_ACCESSIBLE (child);
|
|
||||||
renderer_cell = GTK_RENDERER_CELL_ACCESSIBLE (child);
|
|
||||||
renderer_cell->renderer = fake_renderer;
|
|
||||||
|
|
||||||
/* Create the GtkTreeViewAccessibleCellInfo structure for this cell */
|
|
||||||
cell_info_new (accessible, tree_model, tree, node, tv_col, cell);
|
|
||||||
|
|
||||||
_gtk_cell_accessible_initialise (cell, widget, parent);
|
|
||||||
|
|
||||||
/* Set state if it is expandable */
|
|
||||||
if (is_expander)
|
|
||||||
{
|
|
||||||
set_cell_expandable (cell);
|
|
||||||
if (is_expanded)
|
|
||||||
_gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, FALSE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (l = renderer_list; l; l = l->next)
|
for (l = renderer_list; l; l = l->next)
|
||||||
{
|
{
|
||||||
renderer = GTK_CELL_RENDERER (l->data);
|
renderer = GTK_CELL_RENDERER (l->data);
|
||||||
@ -718,7 +690,6 @@ gtk_tree_view_accessible_ref_child (AtkObject *obj,
|
|||||||
g_list_free (renderer_list);
|
g_list_free (renderer_list);
|
||||||
if (container)
|
if (container)
|
||||||
child = ATK_OBJECT (container);
|
child = ATK_OBJECT (container);
|
||||||
}
|
|
||||||
|
|
||||||
if (expander_tv == tv_col)
|
if (expander_tv == tv_col)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user