-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: modals in overview #27
base: main
Are you sure you want to change the base?
Conversation
Also please format your code with biome to fix CI warnings |
if (!(has_rounded_corners && shadow)) { | ||
if ( | ||
!(has_rounded_corners && shadow) || | ||
window.has_attached_dialogs() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you need to disable the shadow on the attached dialog itself, shouldn't this be is_attached_dialog()
?
This would only disable the shadow for the dialog and not for the parent window. I'm not at my laptop right now though, so I can't test that out, lmk if that doesn't work.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, this patch isn't disabling shadow on attached dialog, it disables shadows for windowPreview
(src).
windowPreview
is a container for each window in the overview. They are responsible for drawing icons and handling DND. Each windowPreview
contains Meta.Window
which it represents but attached dialogs don't deserve their own windowPreview
so they are added to the parent's windowPreview
.
You might ask "But why we need additional effects for each window preview element in the overview?". The answer is this screenshot.
Even if a window actor has a shadow on the desktop, in the overview it's barely visible. And as noted in the comments of the function override, that I edited, since GNOME 43 window actors with effects will become blurry.
Coming back to the bug mentioned in #18, it basically happens, because adding wide or tall attached dialog to the windowPreview
enlarges it which adds transparent spots on the windowPreview
. But internally windowPreview
's actor is still a rectangular box. Applying shadow effect simply highlights this.
I'll convert it to draft for now, since with this PR in it's current state |
5018872
to
7f38800
Compare
In the overview, each WindowPreview gets a copy of parent's effect to add additional shadow. But modal dialogs are placed within parent's WindowPreview, which in some cases would change the size of WindowPreview and lead to weird shadow. Since both main and modal windows already have rounded corners the only casualty of this patch is window shadow in the overview, which IMHO isn't really a big deal because it's already missing if window doesn't have rounded corners, for example maximized windows.
fixes #18