yilozt / rounded-window-corners

A gnome-shell extensions that try to add rounded corners for all windows
GNU General Public License v3.0
458 stars 46 forks source link

Windows loosing shadow after activation via dock icon from different desktop #113

Open florin-valcu opened 1 year ago

florin-valcu commented 1 year ago

HI, following behavior observed while using the extension.

a) start some programs (e.g. Firefox, Transmission) on desktop 1 b) minimize programs (e.g. keep Firefox, but minimize Transmission) - icon shall be visible in the dock c) switch to desktop 2 d) click on program's icon on the dock to restore it

Expected: Desktop is switched to desktop 1, application window is visible with shadow.

Actual: Desktop is switched to desktop 1, application window is visible, but shadow is lost. If I minimize the application window and restore it again from the same desktop, shadow will be displayed properly.

Distro: Ubuntu Linux 22.04 (kernel version 6.1) Gnome Version: 42.5 Display server: Wayland Processor and graphics: 11th Gen Intel® Core™ i5-1135G7 @ 2.40GHz × 8 Mesa Intel® Xe Graphics (TGL GT2)

yilozt commented 1 year ago

b) minimize programs (e.g. keep Firefox, but minimize Transmission) - icon shall be visible in the dock

Do you mean Dash to Dock?

I can reproduce this issue with dash to dock.

The reason is this extensions will hide shadow when the minimize / restore animations running, and show shadow when animation done, in the scene of this issue, extensions have not restore shadow because the handler that connect to unminimize signal is lost:

https://github.com/yilozt/rounded-window-corners/blob/83df4764153dfd4b0d07c9945135952a87d26008/src/manager/effect_manager.ts#L86-L95

There is the log when hide windows in desktop 1, then restore it in desktop 2:

Window manager warning: META_CURRENT_TIME used to choose focus window; focus window may not be correct.
JS ERROR: TypeError: record is undefined
_syncStacking@resource:///org/gnome/shell/ui/workspaceAnimation.js:81:13
enable/WorkspaceGroup.prototype._syncStacking@/home/luo/.local/share/gnome-shell/extensions/rounded-window-corners@yilozt/extension.js:245:32

JS ERROR: TypeError: record is undefined
_syncStacking@resource:///org/gnome/shell/ui/workspaceAnimation.js:81:13
enable/WorkspaceGroup.prototype._syncStacking@/home/luo/.local/share/gnome-shell/extensions/rounded-window-corners@yilozt/extension.js:245:32

When I disable all extensions except Dash to Dock, the error message still occurs:

JS ERROR: TypeError: record is undefined
_syncStacking@resource:///org/gnome/shell/ui/workspaceAnimation.js:81:13

JS ERROR: TypeError: record is undefined
_syncStacking@resource:///org/gnome/shell/ui/workspaceAnimation.js:81:13

It might the reason why animation disappear when restore window in another desktop then this extensions can't restore visible of shadow.