Comment 23 for bug 965953

Revision history for this message
Sebastian Geiger (lanoxx) wrote :

I have been inserting debugging in formation and here is a trace that I am getting when I click on the Skype entry in the indicator applet. For some reason, whenever the items in a menu change, then all items of the menu are removed and then inserted again. For Skype this seems to happen every single time I open the menu. When I open other menu items such as bluetooth or Ubuntu One, then the entries are not removed and inserted. But the menu simply opens. However I can reproduce the same phenomen with network-manager. When I open the menu and then pull the network cable I can see how all items get removed and then re-inserted.

Indicator-Applet-Message: button_press_event cb: entry_secondary_activated
Indicator-Applet-Message: size_allocate: New height: 356
Indicator-Applet-Message: entry-activated cb: entry_activated
Indicator-Applet-Message: size_allocate: New height: 356
Indicator-Applet-Message: menu_entry_remove: menu_shell: 0xd4d0c0; child: 0xfb22d0
[ ... 19 repeating entries truncated ... ]
Indicator-Applet-Message: size_allocate: New height: 0
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xfc82d0
[ ... 15 repeating entries truncated ... ]

(indicator-applet:6978): Gtk-CRITICAL **: gtk_widget_set_accel_path: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed

(indicator-applet:6978): Gtk-CRITICAL **: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xfb25f0
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xfb2460
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xf9e8f0
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xfb22d0

(indicator-applet:6978): Gtk-CRITICAL **: gtk_widget_set_accel_path: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed

(indicator-applet:6978): Gtk-CRITICAL **: gtk_widget_add_accelerator: assertion 'GTK_IS_ACCEL_GROUP (accel_group)' failed
Indicator-Applet-Message: menu_entry_insert: menu_shell: 0xd4d0c0; child: 0xffc790
Indicator-Applet-Message: size_allocate: New height: 378
Indicator-Applet-Message: size_allocate: New height: 378

From the trace I can see there are 20 items removed from the Skype menu, but 21 added. This explains the 22px size difference between the first and last size_allocate call. I have not measured this, but it seems the menu is painted with a height of 356px while at the end it has 378px thus requiring scrolling.

Note that the menu is a member of 'IndicatorObjectEntry' (from libindicator) and indicator-applet has no control over adding or removing entries.