Support menubar in Firefox and Thunderbird
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Unity |
Fix Released
|
Medium
|
Neil J. Patel | ||
indicator-appmenu (Ubuntu) |
Invalid
|
Medium
|
Karl Lattimer | ||
libdbusmenu (Ubuntu) |
Fix Released
|
Medium
|
Karl Lattimer | ||
unity (Ubuntu) |
Fix Released
|
Medium
|
Neil J. Patel |
Bug Description
Whilst working on the menubar for Firefox and Thunderbird, I've hit a few issues. The main ones are:
1) One of the headers in libdbusmenu is missing a set of G_BEGIN_
2) There is no way to tell Firefox when menus are opened. This is necessary for a couple of reasons:
* Firefox and Thunderbird lazy-load a lot of items and also adjust other attributes lazily
* We need to maintain the state of the menus in the DOM, with the "open" attribute (see https:/
1 is easily fixable.
2 involves several components:
* Whilst there is an AboutToShow signal in dbusmenu, it isn't plumbed in on the server side (ie, Firefox). I've attached a branch which does this, and emits an about-to-show signal on the DbusmenuMenuitem.
* The AboutToShow signal isn't emitted for top-level menus for a couple of reasons. indicator-appmenu calls the wrong function in window_
In the long term, Firefox also needs to know when menus are closed, so we can correctly maintain state in the DOM. In the short-term, I'll work around this in Firefox with a bit of guess-work (there's a few things I can do to guess that a menu has been closed)
Related branches
- Neil J. Patel (community): Approve
-
Diff: 19 lines (+2/-0)1 file modifiedservices/panel-service.c (+2/-0)
- Ted Gould (community): Approve
- Karl Lattimer (community): Needs Information
-
Diff: 104 lines (+26/-2)4 files modifiedlibdbusmenu-glib/menuitem.c (+18/-1)
libdbusmenu-glib/menuitem.h (+2/-1)
libdbusmenu-glib/server.c (+2/-0)
libdbusmenu-gtk/menuitem.h (+4/-0)
Changed in libdbusmenu (Ubuntu): | |
assignee: | nobody → Karl Lattimer (karl-qdh) |
Changed in unity: | |
status: | Triaged → Fix Committed |
milestone: | 3.4 → 3.2.8 |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in unity (Ubuntu): | |
status: | Triaged → Fix Committed |
Hi Chris, thanks for filing this bug.
1) For the dbusmenu fixes, go ahead and propose the branch for merging, and we'll review and land that on trunk quickly.
2) There is a way. The about to show signal finally got wired in GTK at the end of Maverick. It's in trunk if you look into libdbusmenu- gtk/client. c:menu_ pressed_ cb
Similarly, there is a way for applications to pop up the panel menu, by calling dbusmenu_ menuitem_ show_to_ user. you can look into lp:appmenu-gtk/bridge.c for an example
We'll look at the patches for unity and indicator-appmenu: thanks!
3) I think we could add an extra signal, sent by i-appmenu and transported by dbusmenu to indicate which menu element just closed. The app. would have to check if its the toplevel menu or one of its submenus. Would that make sense in your case?