Client does not always receive menuitem property changes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DBus Menu |
Expired
|
Undecided
|
Unassigned |
Bug Description
I'm building the new weather indicator version with dbusmenu and libindicator.
I've noticed that when I change a Dbusmenu.Menuitem property (either custom like "x-foo" or Dbusmenu defined like "visible" or "label") on the server, the client does not always receive the change. There is not an exact pattern in this behavior but it seems to have something to do with the thread that performs the change.
When the property changes from a "activated" signal handler (user clicked in an item on the menu), the client always receives the change. Also before the menu is shown, the client receives property changes.
But when the change comes from a different thread of the server or from a glib.add_timeout callback, the client receives it only sometimes.
I've tried with different property names, different threads it's always like this. And it happens only in Natty; in Maverick there was never a problem.
For the moment, as a workaround I use a custom dbus interface and signal the property changes through that (this method never fails, no matter the thread I'm using). But I have to create custom gtk menuitems (that receive property changes through my dbus interface) for every generic menuitem and even for separators, because even them do not respond to "visible" property change.
I'm not sure how to debug this, so please advice me.
thank you for your report - please reopen if this issue still exists in 12.04