maoschanz / quicklists-gnome-shell-extension

Add dynamic quicklists with nautilus bookmarks or recent files.
GNU General Public License v3.0
17 stars 5 forks source link

App menus opened from the panel (via Dash to panel) are malfunctioning #8

Closed alex4401 closed 5 years ago

alex4401 commented 5 years ago

Hello, I have met an issue with Quicklists making application menus (opened by right-clicking on an icon provided by Dock to panel extension) not interactable and appearing in wrong places. Menus still open correctly the standard way (built-in GNOME app launcher/dashboard screen).

I confirm that this issue is not reproducible after turning off Quicklists. Other enabled extensions (affecting app menus and/or panels): Dash to panel, Appfolders Screenshot: https://i.imgur.com/ubo4OcO.png

maoschanz commented 5 years ago

run sudo journalctl -f /usr/bin/gnome-shell and then reproduce the bug, then copy the logs here

alex4401 commented 5 years ago
-- Logs begin at Fri 2019-05-03 17:57:43 CEST. --
cze 11 22:08:17 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:18 alexpc gnome-shell[969]: meta_display_get_monitor_geometry: assertion 'META_IS_DISPLAY (display)' failed
cze 11 22:08:18 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:19 alexpc gnome-shell[969]: Ignoring length property that isn't a number at line 2522, col 11
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:41 alexpc gnome-shell[969]: Ignoring excess values in shadow definition
cze 11 22:08:43 alexpc gnome-shell[969]: JS ERROR: TypeError: existingMenuItems[idx].actor.label_actor is null
                                         _redisplay@/home/alex/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/appIcons.js:1291:1
                                         popup@resource:///org/gnome/shell/ui/appDisplay.js:1826:9
                                         popupMenu@/home/alex/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/appIcons.js:574:9
                                         _onButtonPress@resource:///org/gnome/shell/ui/appDisplay.js:1552:13

Looks like it interferes with Dash to Panel.

maoschanz commented 5 years ago

could you export your dash-to-panel settings and send the file here ? (it's in the "about" tab of their preferences window)

alex4401 commented 5 years ago

Here you go: dtp_settings.txt

maoschanz commented 5 years ago

Damn i still can't reproduce it...

alex4401 commented 5 years ago
alex4401 commented 5 years ago

Reproduced in a VM (basic setup of Arch, with the latest GNOME Shell and Mutter, used Firefox as an example. The only enabled extensions are Dash to Panel and Quicklists): https://i.imgur.com/Hxf5wZs.png

maoschanz commented 5 years ago

i still can't reproduce it, but anyway try the latest version from github, maybe i fixed it

alex4401 commented 5 years ago

Your fix does seem to be working. Thank you for your help.

alex4401 commented 5 years ago

I might be wrong but it looks like label_actors are used mostly for accessibility (screen readers), and Dock to Panel uses them also while displaying a menu spawned by right-clicking on an application icon (precisely: it goes through each original menu item and removes items if their label_actor.text is equal to "Show details", and probably New Window or Quit). (At least that's what https://gitlab.gnome.org/GNOME/gnome-shell-extensions/commit/072fbee7cbaa11a2913adf81cbda314646473438 and https://gitlab.gnome.org/GNOME/gnome-shell/commit/bb2d7f7e7e6dfc6096472ec0a05f5b2870697e5e suggest; in both commits the "visible" label is set also as a label_actor)

They may be kept blank and it won't probably impact much (unless there's an extension that relies on them more than just filtering). I'd just recommend to alter the ninety-second line and set the label's text to localised Recent files.

maoschanz commented 5 years ago

As i said i couldn't reproduce it, so i fixed it only by reading that code, setting them as blank label is what the commit closing the issue is doing.

The issue is just that dash to panel expects items to be either regular popup menu items with just text, or separators, which is what the default menu contains. But menus can contain far more than this, and in order to avoid successive separators when there is no recent file to display, my extension uses a "section", where i then add regular items. A section has no label so their method failed (edit: they could do something different but i guess they have more important issues i'll not bother them)

alex4401 commented 5 years ago

OK, thanks for explaining.