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

Transparency difference on special workspace #3888

Closed
Dickby opened this issue Nov 18, 2023 · 15 comments · Fixed by #3928
Closed

Transparency difference on special workspace #3888

Dickby opened this issue Nov 18, 2023 · 15 comments · Fixed by #3928
Labels
bug Something isn't working

Comments

@Dickby
Copy link
Contributor

Dickby commented Nov 18, 2023

Hyprland Version

Hyprland, built from branch makepkg at commit 8b57a19 dirty (internal: Allow floating windows on special (3872)). Tag: v0.32.3-34-g8b57a197

Bug or Regression?

Bug

Description

Semi-Transparent windows are less transparent if they are in a special workspace.

How to reproduce

Well, open a semitransparent window on a non-special, memorize how transparent it is, and then move it to a special workspace and compare

Crash reports, logs, images, videos

No response

@Dickby Dickby added the bug Something isn't working label Nov 18, 2023
@vaxerski
Copy link
Member

isnt that just the default dim around special?

@Dickby
Copy link
Contributor Author

Dickby commented Nov 18, 2023

No, happens without

@Dickby
Copy link
Contributor Author

Dickby commented Nov 23, 2023

@vaxerski: This is not fully fixed.
Some observations:

  1. If a fullscreen window is behind the special workspace, the problem is not there.
  2. The problem is gone after switching workspaces with active special workspace
  3. new windows on a special workspace will have that problem even after 2.

@Dickby
Copy link
Contributor Author

Dickby commented Nov 23, 2023

In case of fullscreen: while the special workspace is 'sliding in' the transparency and shadow strength is wrong, after the animation ends it's right .

@vaxerski vaxerski reopened this Nov 23, 2023
@vaxerski
Copy link
Member

my bad

@vaxerski
Copy link
Member

check with above

@Dickby
Copy link
Contributor Author

Dickby commented Nov 23, 2023

Seems like it's fixed, but i'm not totally shure.
I never looked at the responsible code before, having done that now, it's quite complicated and inefficient.
Why not having a render order system, like 3 different lists/vectors for the different 'layers'. Those lists get drawn in order.
So promoting a window to be on top of it's layer would be just to move it to the beginning of the list.
Every time a window is e.g. made floating, the a window is moved from the tiled-list to the floating-list and so on.
That way we don't check for all those flags every frame, and changes to the render order are no big thing.
The way it is right now, it's really confusing to read, and your struggle to get the special workspace to just render once, shows that it's not totally clear for you either.
I'm not talking about reorganizing the windows in a ws really, but just to have some lists that hold pointers to the windows in the workspace.

After the last change, floating windows on a regular workspace will be on top of special workspaces again.

@Dickby
Copy link
Contributor Author

Dickby commented Nov 23, 2023

When opening an empty special workspace, and opening a transparent window in it.
After that, slide the special workspace off screen.
Now if you slide it in again, while the animation the special workspace is clearly rendered more than once.
After the animation it seems to be fine.

@vaxerski
Copy link
Member

it is complicated, but it isn't inefficient, all things considered. If you don't use xwayland there really aren't enough windows to make any difference. We should move unmapped xwayland off of m_vWindows, but that's a todo.

@vaxerski
Copy link
Member

I'll try to put all those three issues to rest tomorrow, after I am done with #3920

@thejch
Copy link
Contributor

thejch commented Nov 26, 2023

It seems that transparency in special stopped working again? When i have one tiled window in special there's no transparency at all as far as I can tell

@phonetic112
Copy link
Contributor

I also have no transparency in special, kitty is just black background

@vaxerski
Copy link
Member

my bad adeb20e

@phonetic112
Copy link
Contributor

Thanks

@Dickby
Copy link
Contributor Author

Dickby commented Nov 26, 2023

@vaxerski there is one hopefully last edge case where this happens, and that is if a special workspace is activated while another special workspace is active. During the slide animation, the newly activated special workspace is rendered more than once.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants