a11y: Set has-popup consistently
authorMatthias Clasen <mclasen@redhat.com>
Sat, 17 Jun 2023 16:18:34 +0000 (12:18 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 17 Jun 2023 16:18:34 +0000 (12:18 -0400)
Set the has-popup property when a widget
has a context menu.

gtk/gtkentry.c
gtk/gtklabel.c
gtk/gtkpasswordentry.c
gtk/gtksearchentry.c
gtk/gtktext.c
gtk/gtktextview.c

index 761a10ccffaea7ae441ace143bdf2e8928807014..67281c2f36ec8bd7a2ca5a525bcaad5c9d816587 100644 (file)
@@ -1396,6 +1396,10 @@ gtk_entry_init (GtkEntry *entry)
                              GTK_EVENT_CONTROLLER (catchall));
 
   priv->editing_canceled = FALSE;
+
+  gtk_accessible_update_property (GTK_ACCESSIBLE (entry),
+                                  GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE,
+                                  -1);
 }
 
 static void
index a90b2c480be1fd45cab99c31d0e7ed159a860f83..d8741e8481f72bf5c86c26dfc770ef4bfe4bfa30 100644 (file)
@@ -4951,6 +4951,10 @@ gtk_label_set_selectable (GtkLabel *self,
       gtk_label_ensure_select_info (self);
       self->select_info->selectable = TRUE;
       gtk_label_update_cursor (self);
+
+      gtk_accessible_update_property (GTK_ACCESSIBLE (self),
+                                      GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE,
+                                      -1);
     }
   else
     {
@@ -4962,7 +4966,10 @@ gtk_label_set_selectable (GtkLabel *self,
           self->select_info->selectable = FALSE;
           gtk_label_clear_select_info (self);
         }
+
+      gtk_accessible_reset_property (GTK_ACCESSIBLE (self), GTK_ACCESSIBLE_PROPERTY_HAS_POPUP);
     }
+
   if (setting != old_setting)
     {
       g_object_freeze_notify (G_OBJECT (self));
@@ -5744,6 +5751,10 @@ gtk_label_do_popup (GtkLabel *self,
       gtk_popover_set_has_arrow (GTK_POPOVER (self->popup_menu), FALSE);
       gtk_widget_set_halign (self->popup_menu, GTK_ALIGN_START);
 
+      gtk_accessible_update_property (GTK_ACCESSIBLE (self->popup_menu),
+                                      GTK_ACCESSIBLE_PROPERTY_LABEL, _("Context menu"),
+                                      -1);
+
       g_object_unref (model);
     }
 
index e88e2d14fe5ce9de63996b5b652df495a3eef71c..eaf1df82ab9703d36fafd4ce013f1f6fb98d44dd 100644 (file)
@@ -229,6 +229,10 @@ gtk_password_entry_init (GtkPasswordEntry *entry)
 
   /* Transfer ownership to the GtkText widget */
   g_object_unref (buffer);
+
+  gtk_accessible_update_property (GTK_ACCESSIBLE (entry),
+                                  GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE,
+                                  -1);
 }
 
 static void
index faf85d680399aa164c8463486020d558aad92e70..6191d1f01e6dbb4875218549573c6825bdf26647 100644 (file)
@@ -771,6 +771,10 @@ gtk_search_entry_init (GtkSearchEntry *entry)
                              GTK_EVENT_CONTROLLER (catchall));
 
   gtk_widget_add_css_class (GTK_WIDGET (entry), I_("search"));
+
+  gtk_accessible_update_property (GTK_ACCESSIBLE (entry),
+                                  GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE,
+                                  -1);
 }
 
 /**
index e4605a6970533a29f51def1294323168b2fda85b..2a74fb3d92ec9d8d26ae3dd6a9f3476d2a3aca5c 100644 (file)
@@ -2712,6 +2712,10 @@ gtk_text_do_popup (GtkText *self,
       gtk_popover_set_has_arrow (GTK_POPOVER (priv->popup_menu), FALSE);
       gtk_widget_set_halign (priv->popup_menu, GTK_ALIGN_START);
 
+      gtk_accessible_update_property (GTK_ACCESSIBLE (priv->popup_menu),
+                                      GTK_ACCESSIBLE_PROPERTY_LABEL, _("Context menu"),
+                                      -1);
+
       g_object_unref (model);
     }
 
index 18aa13c99fa67da263c26087903523443a379d13..b0a68f85044d87cb6c928a34fd3ba51f500f0c70 100644 (file)
@@ -2024,6 +2024,7 @@ gtk_text_view_init (GtkTextView *text_view)
 
   gtk_accessible_update_property (GTK_ACCESSIBLE (widget),
                                   GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, TRUE,
+                                  GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, TRUE,
                                   -1);
 }
 
@@ -9089,6 +9090,10 @@ gtk_text_view_do_popup (GtkTextView *text_view,
       gtk_popover_set_has_arrow (GTK_POPOVER (priv->popup_menu), FALSE);
       gtk_widget_set_halign (priv->popup_menu, GTK_ALIGN_START);
 
+      gtk_accessible_update_property (GTK_ACCESSIBLE (priv->popup_menu),
+                                      GTK_ACCESSIBLE_PROPERTY_LABEL, _("Context menu"),
+                                      -1);
+
       g_object_unref (model);
     }