unity-gtk-module does not respect "ubuntu-local" property (used by e.g. Freeciv) as appmenu-gtk did
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Unity GTK+ module |
Fix Committed
|
Medium
|
William Hua | ||
unity-gtk-module (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
The pre-13.10 global menu arrangement (appmenu-gtk?) allowed applications to suppress the "global menu" behaviour (where menubars move to the top of the screen) by decorating menubars with a Gtk property called "ubuntu-local".
Freeciv has several menubars that do not make sense to be global menus, and so decorates them with "ubuntu-local" (see LP #743265).
The new arrangement in Ubuntu 13.10, involving unity-gtk-module, does not appear to respect the "ubuntu-local" property. All menubars are indiscriminately hoisted up to the global menu, resulting in a mess. Screenshot (taken by attente): http://
Related branches
- Charles Kerr (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 12 lines (+2/-0)1 file modifiedsrc/main.c (+2/-0)
Changed in unity-gtk-module: | |
assignee: | nobody → William Hua (attente) |
Changed in unity-gtk-module: | |
status: | New → In Progress |
importance: | Undecided → Medium |
For reference, the code we use in Freeciv to decorate our menubars post bug #743265:
/**** ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******/ menu_bar_ new(void) {
Create an auxiliary menubar (i.e., not the main menubar at the top of
the window).
*****
GtkWidget *gtk_aux_
GtkWidget *menubar = gtk_menu_bar_new();
if (g_object_ class_find_ property(
G_OBJECT_ CLASS(GTK_ MENU_BAR_ GET_CLASS( menubar) ), "ubuntu-local")) { object_ set(G_OBJECT( menubar) , "ubuntu-local", TRUE, NULL);
g_
}
return menubar;
}