phocean / TopIcons-plus

An gnome-shell extension to put the icons back to the tray.
678 stars 98 forks source link

Too many arguments to method Shell.TrayManager.manage_screen: expected 1, got 2 #115

Closed audreytoskin closed 5 years ago

audreytoskin commented 5 years ago

I've packaged TopIcons Plus for Fedora. I have at least one user who reports that recent builds no longer work; application status icons no longer appear in the top bar. At least hp-systray, davmail, remmina, TeamViewer, and AnyDesk are affected. My package is up to date with the recently tagged version 22 release of TopIcons Plus, but my Bugzilla ticket says they first experienced this issue after updating to a package release I'd made based on commit dbbe4ce, and updating again to version 22 hasn't helped...

They're experiencing this issue in both Fedora 28 (GNOME 3.28.3) and Fedora 29 (GNOME 3.30).

I double checked with them that the shell extension was properly re-enabled, that they're using GNOME with Xorg, and they logged out and logged in again after the updates.

GNOME Shell's systemd journal entries for this user frequently say Too many arguments to method Shell.TrayManager.manage_screen: expected 1, got 2 -- not sure if that's necessarily the problem here, though, since it appears as a "JS Warning" instead of an "error"... I'm attaching a copy of the filtered journal entries they shared with me.

Bug-1643369-gnome-shell-TopIcons.txt

Let me know if there's anything else we can do to help figure out this issue, or if you need someone to test updates.

abompard commented 5 years ago

It's apparently the if (global.screen) test on line 180 that is the problem. This test is true on GNOME 3.30+ too apparently, so the tray.manage_screen function is called with the wrong arguments. If I remove the test and run the call with Main.panel.actor as only argument, the extension works fine on my Fedora 29 with GNOME 3.30.2.

jwrdegoede commented 5 years ago

Hi, original author of commit dbbe4ce here, in my original commit line 180 was "if (global.hasOwnProperty("screen")) {", this somehow has been changed into "if (global.screen) {".

@terrycloth, my first guess is that the package is not working, because the users also have a copy in ~/.local/share/gnome-shell-extensions and gnome-shell is still using that old copy.

If that is not the case, can you give the users a test-version restoring my original version of the commit and see if that helps?

audreytoskin commented 5 years ago

Oh, sorry, I forgot to update this thread... Our issue was fixed at some point, maybe when I bumped the package to be based on commit 76759a5. Seems to be working now, thanks.