[gtk+] a11y: Remove in_use member
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] a11y: Remove in_use member
- Date: Wed, 16 Nov 2011 03:41:39 +0000 (UTC)
commit bd1bc88ed29313ef1052220650eb5070d0e070cd
Author: Benjamin Otte <otte redhat com>
Date: Fri Nov 11 20:30:39 2011 +0100
a11y: Remove in_use member
After the latest changes, it is now always TRUE, so adjust the code
accordingly.
gtk/a11y/gtktreeviewaccessible.c | 270 ++++++++++++++++----------------------
1 files changed, 113 insertions(+), 157 deletions(-)
---
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
index 7c1932c..e92f079 100644
--- a/gtk/a11y/gtktreeviewaccessible.c
+++ b/gtk/a11y/gtktreeviewaccessible.c
@@ -41,7 +41,6 @@ struct _GtkTreeViewAccessibleCellInfo
GtkTreeRowReference *cell_row_ref;
GtkTreeViewColumn *cell_col_ref;
GtkTreeViewAccessible *view;
- gboolean in_use;
};
/* signal handling */
@@ -1345,7 +1344,7 @@ gtk_tree_view_accessible_get_cell_area (GtkCellAccessibleParent *parent,
return;
path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
tv_col = cell_info->cell_col_ref;
- if (path && cell_info->in_use)
+ if (path)
{
GtkTreeViewColumn *expander_column;
gint focus_line_width;
@@ -1484,15 +1483,12 @@ gtk_tree_view_accessible_grab_cell_focus (GtkCellAccessibleParent *parent,
GList *renderers;
renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
- if (cell_info->in_use)
- {
- index = atk_object_get_index_in_parent (cell_object);
- renderer = g_list_nth_data (renderers, index);
- }
+ index = atk_object_get_index_in_parent (cell_object);
+ renderer = g_list_nth_data (renderers, index);
g_list_free (renderers);
}
path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
- if (path && cell_info->in_use)
+ if (path)
{
if (renderer)
gtk_tree_view_set_cursor_on_cell (tree_view, path, tv_col, renderer, FALSE);
@@ -1713,15 +1709,12 @@ selection_changed_cb (GtkTreeSelection *selection,
g_hash_table_iter_init (&iter, accessible->cell_infos);
while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&info))
{
- if (info->in_use)
- {
- _gtk_cell_accessible_remove_state (info->cell, ATK_STATE_SELECTED, TRUE);
+ _gtk_cell_accessible_remove_state (info->cell, ATK_STATE_SELECTED, TRUE);
- path = gtk_tree_row_reference_get_path (info->cell_row_ref);
- if (path && gtk_tree_selection_path_is_selected (tree_selection, path))
- _gtk_cell_accessible_add_state (info->cell, ATK_STATE_SELECTED, TRUE);
- gtk_tree_path_free (path);
- }
+ path = gtk_tree_row_reference_get_path (info->cell_row_ref);
+ if (path && gtk_tree_selection_path_is_selected (tree_selection, path))
+ _gtk_cell_accessible_add_state (info->cell, ATK_STATE_SELECTED, TRUE);
+ gtk_tree_path_free (path);
}
if (gtk_widget_get_realized (widget))
g_signal_emit_by_name (accessible, "selection-changed");
@@ -1947,20 +1940,17 @@ model_row_changed (GtkTreeModel *tree_model,
g_hash_table_iter_init (&hash_iter, accessible->cell_infos);
while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer *)&cell_info))
{
- if (cell_info->in_use)
- {
- cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+ cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
- if (cell_path != NULL)
+ if (cell_path != NULL)
+ {
+ if (path && gtk_tree_path_compare (cell_path, path) == 0)
{
- if (path && gtk_tree_path_compare (cell_path, path) == 0)
- {
- if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
- update_cell_value (GTK_RENDERER_CELL_ACCESSIBLE (cell_info->cell),
- accessible, TRUE);
- }
- gtk_tree_path_free (cell_path);
+ if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
+ update_cell_value (GTK_RENDERER_CELL_ACCESSIBLE (cell_info->cell),
+ accessible, TRUE);
}
+ gtk_tree_path_free (cell_path);
}
}
g_signal_emit_by_name (accessible, "visible-data-changed");
@@ -1990,27 +1980,24 @@ column_visibility_changed (GObject *object,
g_hash_table_iter_init (&iter, accessible->cell_infos);
while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&cell_info))
{
- if (cell_info->in_use)
+ tv_col = cell_info->cell_col_ref;
+ if (tv_col == this_col)
{
- tv_col = cell_info->cell_col_ref;
- if (tv_col == this_col)
+ GtkTreePath *row_path;
+ row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+ if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
{
- GtkTreePath *row_path;
- row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
- if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
+ if (gtk_tree_view_column_get_visible (tv_col))
+ set_cell_visibility (tree_view,
+ cell_info->cell,
+ tv_col, row_path, FALSE);
+ else
{
- if (gtk_tree_view_column_get_visible (tv_col))
- set_cell_visibility (tree_view,
- cell_info->cell,
- tv_col, row_path, FALSE);
- else
- {
- _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_VISIBLE, TRUE);
- _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_SHOWING, TRUE);
- }
+ _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_VISIBLE, TRUE);
+ _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_SHOWING, TRUE);
}
- gtk_tree_path_free (row_path);
}
+ gtk_tree_path_free (row_path);
}
}
}
@@ -2336,7 +2323,7 @@ update_cell_value (GtkRendererCellAccessible *renderer_cell,
if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
return FALSE;
- if (emit_change_signal && cell_info->in_use)
+ if (emit_change_signal)
{
tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)));
tree_model = gtk_tree_view_get_model (tree_view);
@@ -2371,18 +2358,12 @@ update_cell_value (GtkRendererCellAccessible *renderer_cell,
* in the list. Otherwise, we assume that the cell is represented
* by the first renderer in the list
*/
+ parent = atk_object_get_parent (ATK_OBJECT (cell));
- if (cell_info->in_use)
- {
- parent = atk_object_get_parent (ATK_OBJECT (cell));
-
- if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
- cur_renderer = g_list_nth (renderers, atk_object_get_index_in_parent (ATK_OBJECT (cell)));
- else
- cur_renderer = renderers;
- }
+ if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+ cur_renderer = g_list_nth (renderers, atk_object_get_index_in_parent (ATK_OBJECT (cell)));
else
- return FALSE;
+ cur_renderer = renderers;
if (cur_renderer == NULL)
return FALSE;
@@ -2716,16 +2697,13 @@ clean_cell_info (GtkTreeViewAccessible *accessible,
{
GObject *obj;
- if (cell_info->in_use)
- {
- obj = G_OBJECT (cell_info->cell);
+ obj = G_OBJECT (cell_info->cell);
- _gtk_cell_accessible_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE);
- g_object_set_qdata (obj,
- gtk_tree_view_accessible_get_data_quark (),
- NULL);
- g_hash_table_remove (accessible->cell_infos, cell_info);
- }
+ _gtk_cell_accessible_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE);
+ g_object_set_qdata (obj,
+ gtk_tree_view_accessible_get_data_quark (),
+ NULL);
+ g_hash_table_remove (accessible->cell_infos, cell_info);
}
static void
@@ -2802,36 +2780,30 @@ traverse_cells (GtkTreeViewAccessible *accessible,
GtkTreePath *row_path;
gboolean act_on_cell;
- if (cell_info->in_use)
+ row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+ g_return_if_fail (row_path != NULL);
+ if (tree_path == NULL)
+ act_on_cell = TRUE;
+ else
{
- row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
- g_return_if_fail (row_path != NULL);
- if (tree_path == NULL)
+ gint comparison;
+
+ comparison = gtk_tree_path_compare (row_path, tree_path);
+ if ((comparison > 0) ||
+ (comparison == 0 && inc_row))
act_on_cell = TRUE;
else
- {
- gint comparison;
-
- comparison = gtk_tree_path_compare (row_path, tree_path);
- if ((comparison > 0) ||
- (comparison == 0 && inc_row))
- act_on_cell = TRUE;
- else
- act_on_cell = FALSE;
- }
-
- if (!cell_info->in_use)
- g_warning ("warning: cell info destroyed during traversal");
+ act_on_cell = FALSE;
+ }
- if (act_on_cell && cell_info->in_use)
- {
- set_cell_visibility (GTK_TREE_VIEW (widget),
- cell_info->cell,
- cell_info->cell_col_ref,
- row_path, TRUE);
- }
- gtk_tree_path_free (row_path);
+ if (act_on_cell)
+ {
+ set_cell_visibility (GTK_TREE_VIEW (widget),
+ cell_info->cell,
+ cell_info->cell_col_ref,
+ row_path, TRUE);
}
+ gtk_tree_path_free (row_path);
}
g_signal_emit_by_name (accessible, "visible-data-changed");
@@ -2865,72 +2837,69 @@ set_expand_state (GtkTreeView *tree_view,
g_hash_table_iter_init (&hash_iter, accessible->cell_infos);
while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer *) &cell_info))
{
- if (cell_info->in_use)
+ cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+ found = FALSE;
+
+ if (cell_path != NULL)
{
- cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
- found = FALSE;
+ GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (cell_info->cell);
- if (cell_path != NULL)
- {
- GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (cell_info->cell);
+ expander_tv = gtk_tree_view_get_expander_column (tree_view);
- expander_tv = gtk_tree_view_get_expander_column (tree_view);
+ /* Only set state for the cell that is in the column with the
+ * expander toggle
+ */
+ if (expander_tv == cell_info->cell_col_ref)
+ {
+ if (tree_path && gtk_tree_path_compare (cell_path, tree_path) == 0)
+ found = TRUE;
+ else if (set_on_ancestor &&
+ gtk_tree_path_get_depth (cell_path) <
+ gtk_tree_path_get_depth (tree_path) &&
+ gtk_tree_path_is_ancestor (cell_path, tree_path) == 1)
+ /* Only set if set_on_ancestor was passed in as TRUE */
+ found = TRUE;
+ }
- /* Only set state for the cell that is in the column with the
- * expander toggle
+ /* Set ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED
+ * for ancestors and found cells.
+ */
+ if (found)
+ {
+ /* Must check against cell_path since cell_path
+ * can be equal to or an ancestor of tree_path.
*/
- if (expander_tv == cell_info->cell_col_ref)
- {
- if (tree_path && gtk_tree_path_compare (cell_path, tree_path) == 0)
- found = TRUE;
- else if (set_on_ancestor &&
- gtk_tree_path_get_depth (cell_path) <
- gtk_tree_path_get_depth (tree_path) &&
- gtk_tree_path_is_ancestor (cell_path, tree_path) == 1)
- /* Only set if set_on_ancestor was passed in as TRUE */
- found = TRUE;
- }
+ gtk_tree_model_get_iter (tree_model, &iter, cell_path);
- /* Set ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED
- * for ancestors and found cells.
- */
- if (found)
+ /* Set or unset ATK_STATE_EXPANDABLE as appropriate */
+ if (gtk_tree_model_iter_has_child (tree_model, &iter))
{
- /* Must check against cell_path since cell_path
- * can be equal to or an ancestor of tree_path.
- */
- gtk_tree_model_get_iter (tree_model, &iter, cell_path);
-
- /* Set or unset ATK_STATE_EXPANDABLE as appropriate */
- if (gtk_tree_model_iter_has_child (tree_model, &iter))
- {
- set_cell_expandable (cell);
+ set_cell_expandable (cell);
- if (gtk_tree_view_row_expanded (tree_view, cell_path))
- _gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, TRUE);
- else
- _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
- }
+ if (gtk_tree_view_row_expanded (tree_view, cell_path))
+ _gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, TRUE);
else
- {
- _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
- if (_gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDABLE, TRUE))
- /* The state may have been propagated to the container cell */
- if (!GTK_IS_CONTAINER_CELL_ACCESSIBLE (cell))
- _gtk_cell_accessible_remove_action_by_name (cell,
- "expand or contract");
- }
-
- /* We assume that each cell in the cache once and
- * a container cell is before its child cells so we are
- * finished if set_on_ancestor is not set to TRUE.
- */
- if (!set_on_ancestor)
- break;
+ _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
+ }
+ else
+ {
+ _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
+ if (_gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDABLE, TRUE))
+ /* The state may have been propagated to the container cell */
+ if (!GTK_IS_CONTAINER_CELL_ACCESSIBLE (cell))
+ _gtk_cell_accessible_remove_action_by_name (cell,
+ "expand or contract");
}
+
+ /* We assume that each cell in the cache once and
+ * a container cell is before its child cells so we are
+ * finished if set_on_ancestor is not set to TRUE.
+ */
+ if (!set_on_ancestor)
+ break;
}
- gtk_tree_path_free (cell_path);
}
+ gtk_tree_path_free (cell_path);
}
}
@@ -3081,12 +3050,7 @@ cell_destroyed (gpointer data)
{
GtkTreeViewAccessibleCellInfo *cell_info = data;
- if (!cell_info)
- return;
- if (cell_info->in_use)
- {
- g_hash_table_remove (cell_info->view->cell_infos, cell_info);
- }
+ g_hash_table_remove (cell_info->view->cell_infos, cell_info);
}
static int
@@ -3122,7 +3086,6 @@ cell_info_new (GtkTreeViewAccessible *accessible,
cell_info->cell_col_ref = tv_col;
cell_info->cell = cell;
- cell_info->in_use = TRUE; /* if we've created it, assume it's in use */
cell_info->view = accessible;
g_object_set_qdata_full (G_OBJECT (cell),
@@ -3534,15 +3497,8 @@ find_cell_info (GtkTreeViewAccessible *accessible,
GtkCellAccessible *cell,
gboolean live_only)
{
- GtkTreeViewAccessibleCellInfo *cell_info;
-
- cell_info = g_object_get_qdata (G_OBJECT (cell),
+ return g_object_get_qdata (G_OBJECT (cell),
gtk_tree_view_accessible_get_data_quark ());
-
- if (live_only && cell_info && !cell_info->in_use)
- cell_info = NULL;
-
- return cell_info;
}
static AtkObject *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]