Comment 11 for bug 743265

Revision history for this message
Jacob Nevins (0jacobnk-ulp) wrote : Re: when using unity, the cities menu is not shown

A little more progress, but still not there yet.

A piece of the jigsaw I was missing was Ubuntu's modifications to the Gtk library itself, "043_ubuntu_menu_proxy.patch". Diff: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/oneiric/gtk+2.0/oneiric/view/head:/debian/patches/043_ubuntu_menu_proxy.patch

Reading that reveals that GtkMenuBar now has an "ubuntu-local" property. If I set that:

  menubar = gtk_menu_bar_new();
  g_object_set(GTK_WIDGET(menubar), "ubuntu-local", 1, NULL);

-- then the menu bar is visible. Success, I thought. However, when I click on certain menus, the menu appears but the menubar disappears, never to return. Other menus on the same menubar are fine.

I tried this with the Nations and Cities report menubars (plrdlg.c and cityrep.c respectively).
On the Nations report, the Diplomacy/Intelligence/Display menus were fine, but the AI menu was bad.
On the Cities report, only the Display menu was fine; all of the Production/Governor/Sell/Select menus were bad.

I'm guessing the badness is something to do with menus that are dynamically constructed somehow (the "ok" menus have relatively static content).

In the above diff, there seems to be something going on with an "ubuntu-local" property of GtkMenuShell as well as GtkMenuBar, but I haven't worked out whether that's something I can/should be putting to use. It looks kind of like internal plumbing, since it's set internally.

In other news, I posted to ayatana-dev[*] about this issue a few days ago, but got no useful feedback yet.

[*] https://lists.launchpad.net/ayatana/msg06176.html