blueman-project / blueman

Blueman is a GTK+ Bluetooth Manager
GNU General Public License v3.0
1.2k stars 186 forks source link

`AudioProfiles`'s item isn't a sub-menu on auto-connection #2383

Open kuraga opened 1 month ago

kuraga commented 1 month ago

blueman: 2.4.1 BlueZ: 5.75 Distribution: Calculate Linux (Gentoo-based) Desktop environment: XFCE 4.18

In most cases, on auto-connection initiated by headphones (https://github.com/blueman-project/blueman/issues/1709#issuecomment-1115324427), the sub-menu-item by AudioProfiles (applet) plugin is just a menu-item (i.e. it isn't a sub-menu). It's exactly not-sub-menu. It's not an empty sub-menu.

Interesting, there is the sub-menu in the manager window, at the same moment.

I don't think it's a serious issue but probably this observation could help in other cases.

kuraga commented 1 month ago

On my observation, items here is legal, i.e. the standard list of sub-items-data.

cschramm commented 1 month ago

You see an Audio Profiles for ... item without a sub menu and that's 100 % reproducible when the device initiates the connection but 0 % when you do from the system that's running blueman? You see sub menu items getting generated in the script, though?

Does restarting blueman-tray fix it (killall blueman-tray, then run it manually)?

Please provide dbus-send --print-reply --dest=org.blueman.Applet /org/blueman/Applet org.blueman.Applet.GetMenu and blueman-tray --loglevel debug (with no blueman-tray process running).

kuraga commented 1 month ago

You see an Audio Profiles for ... item without a sub menu and that's 100 % reproducible when the device initiates the connection but 0 % when you do from the system that's running blueman?

Well, 80-90%.

You see sub menu items getting generated in the script, though?

Yes.

Does restarting blueman-tray fix it (killall blueman-tray, then run it manually)?

No.

Please provide dbus-send --print-reply --dest=org.blueman.Applet /org/blueman/Applet org.blueman.Applet.GetMenu

(at the moment of the described situation - i.e. item instead of item-with-sub-menu) https://gist.github.com/kuraga/0ae5bb9d2018666108aa0514ec04d370

and blueman-tray --loglevel debug (with no blueman-tray process running).

$ blueman-tray --loglevel=DEBUG
(blueman-tray:28259): dbind-WARNING **: 18:50:44.592: Couldn't connect to accessibility bus: Failed to connect to socket /root/.cache/at-spi/bus_0: Отказано в доступе
blueman-tray 18.50.44 DEBUG    Tray:36 _on_name_appeared: Applet started on name org.blueman.Applet, showing indicator
blueman-tray 18.50.44 INFO     Tray:46 _on_name_appeared: Using indicator "StatusNotifierItem"

(no output on auto-connection)

cschramm commented 1 month ago

So blueman-applet provides a proper sub menu to blueman-tray and blueman-tray uses the StatusNotifierItem implementation. Any data from the tray, e.g. with xfce4-panel --restart?

kuraga commented 1 month ago

Now caught some different case, no menu item at all:

image

And xfce4-panel --restart helped!

image

kuraga commented 1 month ago

Is it a race condition?.. The callback doesn't try to convert to a sub-menu since something around isn't ready yet...

kuraga commented 1 month ago

BTW, on auto-connection, the item appears twice. And it doesn't have the sub-menu on the second time.

Also now I see the issue rarely. Don't know what has been changed (UPD: because I restarted blueman-tray?).