GtkMenuItemAccessible: use "insert" signal
Use the "insert" rather than the "add" signal to reliably detect additions of menu items. https://bugzilla.gnome.org/show_bug.cgi?id=372545
This commit is contained in:
committed by
Matthias Clasen
parent
91afc0ea4f
commit
49ccb23743
@ -38,8 +38,9 @@ static void menu_item_deselect (GtkMenuItem *item);
|
|||||||
static GtkWidget *get_label_from_container (GtkWidget *container);
|
static GtkWidget *get_label_from_container (GtkWidget *container);
|
||||||
static gchar *get_text_from_label_widget (GtkWidget *widget);
|
static gchar *get_text_from_label_widget (GtkWidget *widget);
|
||||||
|
|
||||||
static gint menu_item_add_gtk (GtkContainer *container,
|
static gint menu_item_insert_gtk (GtkMenuShell *shell,
|
||||||
GtkWidget *widget);
|
GtkWidget *widget,
|
||||||
|
gint position);
|
||||||
static gint menu_item_remove_gtk (GtkContainer *container,
|
static gint menu_item_remove_gtk (GtkContainer *container,
|
||||||
GtkWidget *widget);
|
GtkWidget *widget);
|
||||||
|
|
||||||
@ -87,7 +88,7 @@ gtk_menu_item_accessible_initialize (AtkObject *obj,
|
|||||||
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (data));
|
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (data));
|
||||||
if (menu)
|
if (menu)
|
||||||
{
|
{
|
||||||
g_signal_connect (menu, "add", G_CALLBACK (menu_item_add_gtk), NULL);
|
g_signal_connect (menu, "insert", G_CALLBACK (menu_item_insert_gtk), NULL);
|
||||||
g_signal_connect (menu, "remove", G_CALLBACK (menu_item_remove_gtk), NULL);
|
g_signal_connect (menu, "remove", G_CALLBACK (menu_item_remove_gtk), NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -882,19 +883,18 @@ atk_selection_interface_init (AtkSelectionIface *iface)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
menu_item_add_gtk (GtkContainer *container,
|
menu_item_insert_gtk (GtkMenuShell *shell,
|
||||||
GtkWidget *widget)
|
GtkWidget *widget,
|
||||||
|
gint position)
|
||||||
{
|
{
|
||||||
GtkWidget *parent_widget;
|
GtkWidget *parent_widget;
|
||||||
|
|
||||||
g_return_val_if_fail (GTK_IS_MENU (container), 1);
|
g_return_val_if_fail (GTK_IS_MENU (shell), 1);
|
||||||
|
|
||||||
parent_widget = gtk_menu_get_attach_widget (GTK_MENU (container));
|
parent_widget = gtk_menu_get_attach_widget (GTK_MENU (shell));
|
||||||
if (GTK_IS_MENU_ITEM (parent_widget))
|
if (GTK_IS_MENU_ITEM (parent_widget))
|
||||||
{
|
GTK_CONTAINER_ACCESSIBLE_CLASS (gtk_menu_item_accessible_parent_class)->add_gtk (GTK_CONTAINER (shell), widget, gtk_widget_get_accessible (parent_widget));
|
||||||
GTK_CONTAINER_ACCESSIBLE_CLASS (gtk_menu_item_accessible_parent_class)->add_gtk (container, widget, gtk_widget_get_accessible (parent_widget));
|
|
||||||
|
|
||||||
}
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -913,6 +913,7 @@ menu_item_remove_gtk (GtkContainer *container,
|
|||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
menu_item_select (GtkMenuItem *item)
|
menu_item_select (GtkMenuItem *item)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user