gint i;
gboolean ret = TRUE;
- if (set == NULL)
+ if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
return TRUE;
chs = atk_object_ref_state_set (child);
gint i;
gboolean ret = FALSE;
- if (set == NULL)
+ if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
return TRUE;
chs = atk_object_ref_state_set (child);
gint i;
gboolean ret = TRUE;
- if (set == NULL)
+ if (set == NULL || set[0] == BITARRAY_SEQ_TERM)
return TRUE;
chs = atk_object_ref_state_set (child);
/* Add to the list if it matches */
if (flag && match_interfaces_lookup (obj, mrp)
&& match_states_lookup (obj, mrp)
- && match_roles_lookup (obj, mrp) && match_attributes_lookup (obj, mrp))
+ && match_roles_lookup (obj, mrp) && match_attributes_lookup (obj, mrp)
+ && (max == 0 || kount < max))
{
ls = g_list_append (ls, obj);
kount++;
indexinparent = atk_object_get_index_in_parent (obj);
parent = atk_object_get_parent (obj);
- if (indexinparent > 0)
+ if (indexinparent > 0 && (max == 0 || kount < max))
{
/* there are still some siblings to visit so get the previous sibling
and get it's last descendant.
kount = sort_order_rev_canonical (mrp, ls, kount, max,
nextobj, TRUE, pobj);
}
- else
+ else if (max == 0 || kount < max)
{
/* no more siblings so next node must be the parent */
kount = sort_order_rev_canonical (mrp, ls, kount, max,
obj = parent;
}
- if (kount < max)
+ if (max == 0 || kount < max)
{
kount = sort_order_canonical (mrp, ls, kount, max,
obj, i + 1, TRUE, FALSE, TRUE, TRUE);