Skip to content
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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

garaevdi
Copy link

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

po/[email protected] Outdated Show resolved Hide resolved
@flexagoon
Copy link
Owner

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()
Copy link
Owner

@flexagoon flexagoon Jun 28, 2024

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.

Copy link
Author

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.

Screenshot from 2024-06-28 20-57-21

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.

@garaevdi
Copy link
Author

I'll convert it to draft for now, since with this PR in it's current state windowPreview without shadow effect is blurry and I think there is a way to fix it.

@garaevdi garaevdi marked this pull request as draft June 28, 2024 18:50
@flexagoon flexagoon force-pushed the main branch 2 times, most recently from 5018872 to 7f38800 Compare August 19, 2024 18:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Wrong border size for modal dialogs
2 participants