The last findings have been very interesting.
The following chart shows the behaviour of gtk_widget_add_accelerator(), method invoked by bonobo_ui_sync_menu_state. Here is where the time increases. Each point represents the sum of the times of all the add_accelerator in a switch, so there are 100 switches:
![]()
Analysing the code we reach finally a g_memmove at quick_accel_add(), with the following behaviour:
![]()
Moreover, if we print the number of accelerators at an accelerator group the value always grow, like if some of the accelerators hasn’t been removed at the deactivation of the component in a switch.