Menus are not destroyed when a window is closed with GDbus port
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Application Menu Indicator |
Fix Released
|
Undecided
|
Chris Coulson | ||
indicator-appmenu (Ubuntu) |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: indicator-appmenu
Previously, when an application dropped off the bus, indicator-appmenu would catch the NameOwnerChanged signal and properties_
In the GDbus port, each WindowMenus instance connects to the notify:
However, this never actually fires, as it only works for well known bus names (see this code snippet from gdbusproxy.
if (proxy->priv->name != NULL && !g_dbus_
{
proxy-
}
The side effect of this is that the panel now leaks WindowMenus instances. And if applications reuse XID's, then things get really messy (and Firefox windows always seem to get the same XID, I'm not sure why though...)
Related branches
- Ted Gould (community): Approve
-
Diff: 93 lines (+22/-15)1 file modifiedsrc/window-menus.c (+22/-15)
Changed in indicator-appmenu (Ubuntu): | |
importance: | Undecided → Medium |
Changed in indicator-appmenu: | |
milestone: | none → 0.1.91 |
status: | In Progress → Fix Released |
Hmmm, I'm misunderstanding how it used to work, as the destroy signal from DbusGProxy is only fired when the proxy is destroyed, and not when the application disappears off the bus.
This used to work somehow though.
The new code in indicator-appmenu (listening to the notify: :g-name- owner signal in window-menus.c) doesn't seem to work anyway though (it's never fired), and appears to be trying to do something different to the code it replaced.