gtk_menu_reorder_child does nothing on menus managed by application indicator. This is further demonstrated by the two attached C++ programs. Both create a window and a application indicator menu with two items in it and reorder the items. The other attaches the menu to the application indicator icon and the other to a widget on screen. In the first case, the menu gets wrongly rendered in the original ordering. In the second case, the menu gets properly rendered with the two items reordered.
The programs compile on ubuntu 12.04 with some necessary development packages installed:
g++ bugtest.cpp `pkg-config gtkmm-3.0 appindicator3-0.1 --cflags --libs` -o bugtest
g++ bugtest2.cpp `pkg-config gtkmm-3.0 appindicator3-0.1 --cflags --libs` -o bugtest2
Duplicate bug 1026791 also has a Python script to demonstrate the problem. <https://bugs.launchpad.net/libdbusmenu/+bug/1026791/+attachment/3228814/+files/testind.py>
Hey, thanks for the awesome test cases! I'm looking into this right now. Looks like it's client-side (libappindicator instead of indicator- application) because I can see via d-feet that the menu the test app exports over dbus hasn't changed.