Merge branch 'cherry-pick-06f08ea8' into 'gtk-4-16'
[gtk-4-16] atcontext: Only recurse parents for non-widget accessibles See merge request GNOME/gtk!7795
This commit is contained in:
@@ -515,29 +515,35 @@ static GtkATContext * get_parent_context (GtkATContext *self);
|
||||
static inline void
|
||||
maybe_realize_context (GtkATContext *self)
|
||||
{
|
||||
GtkAccessible *accessible_parent;
|
||||
GtkATContext *parent_context;
|
||||
|
||||
parent_context = get_parent_context (self);
|
||||
|
||||
if (!GTK_IS_WIDGET (self->accessible) || (parent_context && parent_context->realized))
|
||||
gtk_at_context_realize (self);
|
||||
|
||||
g_clear_object (&parent_context);
|
||||
|
||||
accessible_parent = self->accessible_parent;
|
||||
while (accessible_parent && !GTK_IS_WIDGET (accessible_parent))
|
||||
if (GTK_IS_WIDGET (self->accessible))
|
||||
{
|
||||
parent_context = gtk_accessible_get_at_context (accessible_parent);
|
||||
GtkATContext *parent_context = get_parent_context (self);
|
||||
|
||||
if (!parent_context)
|
||||
break;
|
||||
|
||||
gtk_at_context_realize (parent_context);
|
||||
accessible_parent = parent_context->accessible_parent;
|
||||
if (parent_context && parent_context->realized)
|
||||
gtk_at_context_realize (self);
|
||||
|
||||
g_clear_object (&parent_context);
|
||||
}
|
||||
else
|
||||
{
|
||||
GtkAccessible *accessible_parent;
|
||||
|
||||
gtk_at_context_realize (self);
|
||||
|
||||
accessible_parent = self->accessible_parent;
|
||||
while (accessible_parent && !GTK_IS_WIDGET (accessible_parent))
|
||||
{
|
||||
GtkATContext *parent_context = gtk_accessible_get_at_context (accessible_parent);
|
||||
|
||||
if (!parent_context)
|
||||
break;
|
||||
|
||||
gtk_at_context_realize (parent_context);
|
||||
accessible_parent = parent_context->accessible_parent;
|
||||
|
||||
g_clear_object (&parent_context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*< private >
|
||||
|
||||
Reference in New Issue
Block a user