From: Matthias Clasen Date: Sun, 18 Jun 2023 19:15:54 +0000 (-0400) Subject: a11y: Cover the printer option widget case too X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~126^2~3 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a8b907a33c629e96a3bffb37968722c0076d283c;p=gtk4.git a11y: Cover the printer option widget case too This is another case of nested control, in this case it goes two levels deep. Since we already have this hack, lets use it for all the cases. This avoids some more complicated workaround. --- diff --git a/gtk/gtkatcontext.c b/gtk/gtkatcontext.c index 2d6908cd7a..5ced08a481 100644 --- a/gtk/gtkatcontext.c +++ b/gtk/gtkatcontext.c @@ -46,6 +46,7 @@ #include "gtkdropdown.h" #include "gtkcolordialogbutton.h" #include "gtkfontdialogbutton.h" +#include "print/gtkprinteroptionwidgetprivate.h" #if defined(GDK_WINDOWING_X11) || defined(GDK_WINDOWING_WAYLAND) #include "a11y/gtkatspicontextprivate.h" @@ -1200,7 +1201,17 @@ is_nested_button (GtkATContext *self) if ((GTK_IS_TOGGLE_BUTTON (widget) && GTK_IS_DROP_DOWN (parent)) || (GTK_IS_TOGGLE_BUTTON (widget) && GTK_IS_MENU_BUTTON (parent)) || (GTK_IS_BUTTON (widget) && GTK_IS_COLOR_DIALOG_BUTTON (parent)) || - (GTK_IS_BUTTON (widget) && GTK_IS_FONT_DIALOG_BUTTON (parent))) + (GTK_IS_BUTTON (widget) && GTK_IS_FONT_DIALOG_BUTTON (parent)) +#ifdef G_OS_UNIX + || (GTK_IS_PRINTER_OPTION_WIDGET (parent) && + (GTK_IS_CHECK_BUTTON (widget) || + GTK_IS_DROP_DOWN (widget) || + GTK_IS_ENTRY (widget) || + GTK_IS_IMAGE (widget) || + GTK_IS_LABEL (widget) || + GTK_IS_BUTTON (widget))) +#endif + ) return TRUE; return FALSE; @@ -1257,6 +1268,12 @@ gtk_at_context_get_name (GtkATContext *self) { parent = get_parent_context (self); self = parent; + if (is_nested_button (self)) + { + parent = get_parent_context (parent); + g_object_unref (self); + self = parent; + } } GPtrArray *names = g_ptr_array_new ();