gnome-shell-extension-appindicator icon indicating copy to clipboard operation
gnome-shell-extension-appindicator copied to clipboard

Linuxqq tray-Icons not clickable

Open leonevilred opened this issue 1 year ago • 10 comments

Archlinux Gnome 45.2 wayland No matter whether old tray-icons supported or not .

leonevilred avatar Dec 09 '23 14:12 leonevilred

The menu can pop up by re-unlocking the desktop through the lock screen. I don’t know why.

ArlongLi avatar Dec 10 '23 11:12 ArlongLi

The menu can pop up by re-unlocking the desktop through the lock screen. I don’t know why.

Thanks for mention.It works temporarily before fix!

leonevilred avatar Dec 10 '23 15:12 leonevilred

The same problem is on X11 too.

Bot-wxt1221 avatar Dec 22 '23 01:12 Bot-wxt1221

Need to reload this extension after log in to QQ to have pop up menu working.

nicevz avatar Jan 18 '24 08:01 nicevz

The same problem.

238Ver avatar Feb 12 '24 01:02 238Ver

The same. and actually, I really think that functions like the tray icon should be implemented by the official GNOME desktop team.

uzvg avatar Mar 13 '24 14:03 uzvg

The same. and actually, I really think that functions like the tray icon should be implemented by the official GNOME desktop team.

Gnome desktop team just delete it and it is almost impossible to do like what you say.

Bot-wxt1221 avatar Mar 24 '24 13:03 Bot-wxt1221

@3v1n0
Found the tray of 'linuxqq' does not have additional menus when not logged in, and additional menus are only added to the tray after logging in. Infer the extension not receiving or processing object update messages from linuxqq tray.

0xarch avatar Apr 24 '24 01:04 0xarch

Same issue here.

plumlis avatar Apr 25 '24 07:04 plumlis

Edit: PR created, the workaround here is silly and is not recommended.


Same here.

Thanks to @0xarch I've found a work around. It's silly but it works.

I can confirm that qq provides a root menu item with zero child in its submenu until logged in. But appindicator does handle the LayoutUpdated signal (see _onSignal) so it's probably qq who didn't send the signal.

Here's the silly workaround

In method attachToMenu, add:

        // PATCH: keep on updating when root item has no submenu entries
        const requestLayoutUpdate = () => {
            if (!this?._client || this._rootItem?._children_ids?.length) {
                return;
            }
            this._client._requestLayoutUpdate();
            setTimeout(requestLayoutUpdate, 30000);
        };
        setTimeout(requestLayoutUpdate, 30000);

This function calls _requestLayoutUpdate and calls itself every 30 seconds.

Also tried adding those into method _onMenuOpened but this won't work, since PopupMenu only opens the menu and emits an open-state-changed signal when the menu is not empty.

If it's too silly to add such a patch to your local extension file, you probably have to disable - enable the appindicator extension (or lock - unlock gnome-shell) to force a _requestLayoutUpdated every time you log in your qq account.

I wonder if you have some better ideas, @0xarch.

By the way...

QQ does not implement org.freedesktop.DBus.Introspectable (it simply returns an empty node), so I could not use d-spy and spent too much time cooking the dbus-send commands when learning this. -_-||

lost-melody avatar Sep 02 '24 09:09 lost-melody

@lost-melody

zh_CN

这个扩展 似乎可以和 linuxqq史山代码一起工作,也许对这个议题有帮助.

另外,如果 linuxqq 没有广播更新消息,那么其他 (类似于 KDE 系统托盘, 以及上面提到的扩展 ) 的处理应用如何避免这个问题,或者它们只是每次用户打开的时候都向应用请求一次托盘数据?

This extension seems work with linuxqq's codes, maybe it's helpful to this issue.

BTW, if linuxqq does not message its tray's update, why do some handlers (like KDE's system tray) can handle it, or they just request items each time the user open the tray's panel?

0xarch avatar Oct 14 '24 06:10 0xarch