forge-ext / forge

Forge - Tiling and Window Manager for Gnome-Shell
GNU General Public License v3.0
895 stars 48 forks source link

bug: preview overlay stuck when arranging windows with the mouse #175

Open romaink-es opened 1 year ago

romaink-es commented 1 year ago

Describe the bug/issue Sometimes when I drag and drop windows to rearrange them, the preview overlay doesn't disappear when I release the mouse or move the window away. It shows up on all workspaces until I restart GNOME. Disabling the extension hides the overlay, but it still shows up when I enable it again.

To Reproduce Steps to reproduce the behavior:

  1. Drag a window over another to rearrange it
  2. Release or move the window away.
  3. The preview overlay stays on the screen instead of disappearing.

Expected behavior The overlay should disappear when I release or move the window.

Screenshots or journal logs screenshot bug forge

Also if possible, please provide latest logs from e.g. 1 hour ago journalctl -b 0 -r --since "1 hour ago": logs_bug_forge.txt

Version Information

  1. Arch Linux, updated yesterday
  2. Forge version: 43.2-61
  3. Gnome-shell version (gnome-shell --version): 43.2

Monitor Setup

  1. 1x 1440p

Additional context I could not find a way to reproduce this bug, it happens randomly twice or three times per week.

Also the overlay is temporarily hidden while a fullscreen window has focus.

jmmaranan commented 1 year ago

Hi @romaink-es - if you disable all other extensions and only enable Forge, is it still happening?

romaink-es commented 1 year ago

After triggering the bug this morning I tried disabling all extensions but the overlay was still here. I've restarted Gnome with only Forge enabled, I'll let you know if the issue still occur.

I forgot to mention that I'm running Wayland if that changes anything.

deepimpactmir commented 1 year ago

If it helps, I encounter the same bug sometimes as well, with it occurring sometimes when trying to drag windows around.

Screenshots Screenshot from 2023-01-28 13-58-46

CheariX commented 1 year ago

Same problem here. I think its a Gnome/Wayland related issue. Can we somehow disable these previews as a temporary workaround? Even disabling and reenabling Forge does not help, the red preview persists.

Btw, I've seen similar issue with Tiling Assistant if you apply their layouts.

jmmaranan commented 1 year ago

Hey all, while I have not personally reproduced it yet in Fedora SilverBlue running on Wayland (I have not updated yet for a week or so). Let me see what I can do to clean them up.

jmmaranan commented 1 year ago

Hi @romaink-es @CheariX @deepimpactmir, are you using trackpad or a mouse? Just updated my ostree and trying to replicate it. I explicitly disabled the preview locally, it does degrade the experience guessing where it should go unless you are used to know where the preview was going before.

wroyca commented 1 year ago

Hi @romaink-es @CheariX @deepimpactmir, are you using trackpad or a mouse? Just updated my ostree and trying to replicate it. I explicitly disabled the preview locally, it does degrade the experience guessing where it should go unless you are used to know where the preview was going before.

Stopping by to say that I am experiencing the same issue as stated above:

image

I explicitly disabled the preview locally, it does degrade the experience guessing where it should go unless you are used to know where the preview was going before.

I personally find it intuitive enough to not need it, except for tabbing where it's not always clear whether the window will move to the left or move in tabbed mode without the indicator - then again, It's always disabled on my side as it rarely work well - maybe a toggle button to disable the preview as a temporary workaround would work well for the time being? :beer:

jmmaranan commented 1 year ago

As always thanks @wroyca. Yeah I am going to put it out there, will add the prefs toggle later. But the real issue still yet to be found.

jmmaranan commented 1 year ago

Ok folks, I tried to get it out of the way. It is in the prefs.js experimental, while I try to sort it out what's causing it. Waiting for JustPerfection or gnome ext admins to approve v62

jmmaranan commented 1 year ago

I updated to 43-2.2 on FC37 Silverblue, using mouse or trackpad still works ok. If anyone has a consistent repro please let me know. And also please send any logs when it happens

jmmaranan commented 1 year ago

@romaink-es - by the way, I did check your logs. What is standing out is when it did panic on gnome-shell, it keeps pointing to the theme.js:

Jan 18 09:29:16 opeth gnome-shell[1914]: #12   561de000a270 i   /home/romain/.local/share/gnome-shell/extensions/forge@jmmaranan.com/extension.js:56 (5376dce3c40 @ 192)
Jan 18 09:29:16 opeth gnome-shell[1914]: #11   561de000a318 i   /home/romain/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:213 (5376dcf9dd0 @ 321)

However, that line of code is referring to loading and unloading stylesheets. It does not make sense to me. I also installed dash-to-panel and still waiting for a repro. I'll also see if I can make Boxes work on SilverBlue

wroyca commented 1 year ago

@romaink-es - by the way, I did check your logs. What is standing out is when it did panic on gnome-shell, it keeps pointing to the theme.js:

Jan 18 09:29:16 opeth gnome-shell[1914]: #12   561de000a270 i   /home/romain/.local/share/gnome-shell/extensions/forge@jmmaranan.com/extension.js:56 (5376dce3c40 @ 192)
Jan 18 09:29:16 opeth gnome-shell[1914]: #11   561de000a318 i   /home/romain/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:213 (5376dcf9dd0 @ 321)

However, that line of code is referring to loading and unloading stylesheets. It does not make sense to me. I also installed dash-to-panel and still waiting for a repro. I'll also see if I can make Boxes work on SilverBlue

I'm speculating because it's pretty random, but I've found that it often happens in a "racy" way when an overlay event is triggered almost at the same time as a window event - say, a resize - and from then on, it seems like the window event "steals" the overlay event, preventing it from "destroying" itself properly

I'll try to capture some logs should I manage to hit it again -

wroyca commented 1 year ago
Feb 02 10:02:36 DESKTOP-7I26AD7 gjs[17129]: JS ERROR: TypeError: cssRule.declarations is undefined
                                            getCssProperty@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:110:35
                                            setCssProperty@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:118:32
                                            updateCssColors@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/prefs.js:732:17
                                            _createColorOptionWidget/<@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/prefs.js:746:24
                                            run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:186:20
                                            main@resource:///org/gnome/Shell/Extensions/js/main.js:22:13
                                            run@resource:///org/gnome/gjs/modules/script/package.js:206:19
                                            start@resource:///org/gnome/gjs/modules/script/package.js:190:8
                                            @/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17
Feb 02 10:02:42 DESKTOP-7I26AD7 gjs[17129]: JS ERROR: TypeError: cssRule.declarations is undefined
                                            getCssProperty@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:110:35
                                            setCssProperty@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/theme.js:118:32
                                            updateCssColors@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/prefs.js:732:17
                                            _createColorOptionWidget/<@/home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/prefs.js:746:24
                                            run@resource:///org/gnome/Shell/Extensions/js/dbusService.js:186:20
                                            main@resource:///org/gnome/Shell/Extensions/js/main.js:22:13
                                            run@resource:///org/gnome/gjs/modules/script/package.js:206:19
                                            start@resource:///org/gnome/gjs/modules/script/package.js:190:8
                                            @/usr/share/gnome-shell/org.gnome.Shell.Extensions:1:17
**Feb 02 22:35:17 DESKTOP-7I26AD7 gnome-shell[66449]: Can't update stage views actor <unnamed>[<MetaWindowActorX11>:0x55f997cb9360] is on because it needs an allocation.
Feb 02 22:35:17 DESKTOP-7I26AD7 gnome-shell[66449]: Can't update stage views actor <unnamed>[<MetaSurfaceActorX11>:0x55f99814ce00] is on because it needs an allocation.
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: Object St.Icon (0x55f996b7fc90), has been already disposed — impossible to set any property on it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: Object .Gjs_ui_popupMenu_Switch (0x55f99704d420), has been already disposed — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: == Stack trace for context 0x55f99235a180 ==
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #0   55f997976750 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:87 (303ff0873b00 @ 77)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #1   55f9979766c0 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:75 (303ff0873ab0 @ 59)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #2   7ffe2ab5f0e0 b   resource:///org/gnome/gjs/modules/core/overrides/Gio.js:686 (303ff08a00b0 @ 169)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #3   55f997976628 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:104 (303ff0873ba0 @ 52)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #4   55f997976590 i   resource:///org/gnome/shell/ui/popupMenu.js:426 (303ff08e14c0 @ 56)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #5   55f997976500 i   resource:///org/gnome/shell/ui/popupMenu.js:413 (303ff08e1470 @ 41)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #6   55f997976468 i   resource:///org/gnome/shell/ui/popupMenu.js:141 (303ff08dcba0 @ 87)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: == Stack trace for context 0x55f99235a180 ==
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #0   55f9979767d8 i   resource:///org/gnome/shell/ui/popupMenu.js:350 (303ff08e12e0 @ 65)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #1   55f997976750 i   resource:///org/gnome/shell/ui/popupMenu.js:435 (303ff08e1560 @ 18)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #2   55f9979766c0 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:76 (303ff0873ab0 @ 95)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #3   7ffe2ab5f0e0 b   resource:///org/gnome/gjs/modules/core/overrides/Gio.js:686 (303ff08a00b0 @ 169)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #4   55f997976628 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:104 (303ff0873ba0 @ 52)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #5   55f997976590 i   resource:///org/gnome/shell/ui/popupMenu.js:426 (303ff08e14c0 @ 56)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #6   55f997976500 i   resource:///org/gnome/shell/ui/popupMenu.js:413 (303ff08e1470 @ 41)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #7   55f997976468 i   resource:///org/gnome/shell/ui/popupMenu.js:141 (303ff08dcba0 @ 87)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: == Stack trace for context 0x55f99235a180 ==
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #0   55f9979767d8 i   resource:///org/gnome/shell/ui/popupMenu.js:355 (303ff08e12e0 @ 133)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #1   55f997976750 i   resource:///org/gnome/shell/ui/popupMenu.js:435 (303ff08e1560 @ 18)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #2   55f9979766c0 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:76 (303ff0873ab0 @ 95)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: Object .Gjs_ui_popupMenu_Switch (0x55f99704d420), has been already disposed — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #3   7ffe2ab5f0e0 b   resource:///org/gnome/gjs/modules/core/overrides/Gio.js:686 (303ff08a00b0 @ 169)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #4   55f997976628 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:104 (303ff0873ba0 @ 52)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #5   55f997976590 i   resource:///org/gnome/shell/ui/popupMenu.js:426 (303ff08e14c0 @ 56)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #6   55f997976500 i   resource:///org/gnome/shell/ui/popupMenu.js:413 (303ff08e1470 @ 41)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #7   55f997976468 i   resource:///org/gnome/shell/ui/popupMenu.js:141 (303ff08dcba0 @ 87)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: == Stack trace for context 0x55f99235a180 ==
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #0   55f9979767d8 i   resource:///org/gnome/shell/ui/popupMenu.js:440 (303ff08e15b0 @ 10)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #1   55f997976750 i   resource:///org/gnome/shell/ui/popupMenu.js:436 (303ff08e1560 @ 35)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #2   55f9979766c0 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:76 (303ff0873ab0 @ 95)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #3   7ffe2ab5f0e0 b   resource:///org/gnome/gjs/modules/core/overrides/Gio.js:686 (303ff08a00b0 @ 169)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #4   55f997976628 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:104 (303ff0873ba0 @ 52)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #5   55f997976590 i   resource:///org/gnome/shell/ui/popupMenu.js:426 (303ff08e14c0 @ 56)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #6   55f997976500 i   resource:///org/gnome/shell/ui/popupMenu.js:413 (303ff08e1470 @ 41)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #7   55f997976468 i   resource:///org/gnome/shell/ui/popupMenu.js:141 (303ff08dcba0 @ 87)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: == Stack trace for context 0x55f99235a180 ==
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #0   55f9979767d8 i   resource:///org/gnome/shell/ui/popupMenu.js:443 (303ff08e15b0 @ 102)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #1   55f997976750 i   resource:///org/gnome/shell/ui/popupMenu.js:436 (303ff08e1560 @ 35)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #2   55f9979766c0 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:76 (303ff0873ab0 @ 95)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #3   7ffe2ab5f0e0 b   resource:///org/gnome/gjs/modules/core/overrides/Gio.js:686 (303ff08a00b0 @ 169)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #4   55f997976628 i   /home/wroy/.local/share/gnome-shell/extensions/forge@jmmaranan.com/panel.js:104 (303ff0873ba0 @ 52)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #5   55f997976590 i   resource:///org/gnome/shell/ui/popupMenu.js:426 (303ff08e14c0 @ 56)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: Object .Gjs_ui_popupMenu_PopupSwitchMenuItem (0x55f997a58ee0), has been already disposed — impossible to get any property from it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #6   55f997976500 i   resource:///org/gnome/shell/ui/popupMenu.js:413 (303ff08e1470 @ 41)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: #7   55f997976468 i   resource:///org/gnome/shell/ui/popupMenu.js:141 (303ff08dcba0 @ 87)
Feb 02 22:35:18 DESKTOP-7I26AD7 gnome-shell[66449]: Object .Gjs_ui_popupMenu_PopupSwitchMenuItem (0x55f997a58ee0), has been already disposed — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.**

Potentially unrelated, but timestamp seems to correlate with when I experienced it

jmmaranan commented 1 year ago

@wroyca - from what I am seeing on your logs, it looks like pretty much a degradation or panic on gnome-shell. As if the objects were literally not there at all. There was also a mention on this thread about seeing it on Tiling Assistant.

If it is OK with everyone, I'll assume this is an issue upstream. But not happening on immutable like SilverBlue - or so it seems.

hugo-ye commented 1 year ago

For me, this takes place especially when I use the mouse to drag a window (scroll) from one workspace to another. Fedora 37, Gnome 43.4, Forge version 65

CheariX commented 1 year ago

So for me, I haven't experienced this issue for a while now. I can no longer reproduce it.

outpoints commented 11 months ago

Is there a way to get rid of this once it appears without completely logging out?

moritztim commented 10 months ago

Issue still happens. And I'm on X11.

As if the objects were literally not there at all

@jmmaranan does this mean that there's no way to just remove all previews upon disabling the extension?

moritztim commented 10 months ago

Is there a way to get rid of this once it appears without completely logging out?

@outpoints You can restart X11 by pressing alt + f2 then typing r. Keep in mind that this will close all windows and may result in a crash (at least it does for me but maybe because I have 4 screens)

tsilvs commented 6 months ago

Having the same issue on Fedora Silverblue 39 / GNOME 45 / Forge 45.3-1.1-alpha RPM / Wayland.

Got it one today after using the extension for a month in the same fasion (with tabbed layout on window rearrangement).

EmptyVisual commented 5 months ago

This is occurring on Arch Linux Gnome 46 Wayland Forge v46-78

image

wwklnd commented 1 month ago

This happens for me as well. I'm on EndeavourOS, Linux 6.10.1-arch1-1, GNOME 46.3.1 (X11), Forge v46-83. image