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

Top Bar Blur Flicker #673

Open
KUPOinyourWINDOW opened this issue Sep 28, 2024 · 14 comments
Open

Top Bar Blur Flicker #673

KUPOinyourWINDOW opened this issue Sep 28, 2024 · 14 comments

Comments

@KUPOinyourWINDOW
Copy link

KUPOinyourWINDOW commented Sep 28, 2024

In Fedora 41 beta, Gnome 47 I'm experiencing a consistant flicker of the blur effect (both static AND dynamic) when opening and closing quite a large amount of app including even Gnome Files.
The top panel blur effect flickers for a quick second where the top panel loses its blur and then gains it back again once the flicker is over.

@Calosis
Copy link

Calosis commented Sep 28, 2024

Can confirm this issue when opening applications. Will attempt to find the issue later today.

@aunetx
Copy link
Owner

aunetx commented Sep 28, 2024

Hello, I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug, which I fixed using a different signal to refresh the blur (I think it is workarea-changed but I'm not sure).

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

So I think I will either need to find another signal to connect to instead, or connect to this signal when there are multiple monitors, and the old one when there is only one monitor... But that requires some logic as both signals are inherently linked to monitors connection/disconnection.

@KUPOinyourWINDOW
Copy link
Author

As a temp workaround Version 65 doesn't have this issue so if you don't rely on multi-monitors then that appears to be the way to go, just make sure you change the reported version to 67 so don't get auto-updated right away

@JockeTF
Copy link

JockeTF commented Oct 8, 2024

This happens for me as well, mostly when opening the first or closing the last window on a workspace.

@neuromorph
Copy link
Contributor

Hello @aunetx ,

I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug

I am not sure what exactly was this bug so not sure if that will still work. Can you share a link or someone could test if they faced it before.

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

Correct, the work area will change with change in panel or apps. I believe the original issue is only to do with Panel position and size. With that assumption I thought we can connect to PanelBox ['notify::size', 'notify::position'] signals. I then noticed that those are already being connected to update_size() and I wonder that maybe enough instead of full reset(). However, I have shifted the call to update_size after making all the connections so that there isn't any gap between setting size and connecting. If this helps for the earlier issue then workareas-changed is not needed so I have commented it.

If someone wants to try out, you can replace your local panel.js under BMS components dir with the one attached here (after unzip). Then logout and log back in for changes to reflect. It should stop the flicker though also test for the multi-monitor issue if you are aware of it.

panel.zip

@JockeTF
Copy link

JockeTF commented Oct 9, 2024

I can confirm that these changes stop the flickering. But, when changing monitors part of the panel is missing its blur again. Switching to the overview and back fixes the blur. I do prefer this over the flickering.

@neuromorph
Copy link
Contributor

neuromorph commented Oct 9, 2024

Hey @JockeTF

What do you mean by 'changing monitors ', as in steps to reproduce that part? I am not up to speed with that issue so more details will help. I thought it was only an issue at startup.

Thanks!

@JockeTF
Copy link

JockeTF commented Oct 10, 2024

@neuromorph

before

after

If I change my display scaling to 125%, switch to the overview and back, then switch back display scaling to 100%. For me, the right part of the panel goes completely transparent until I switch to the overview and back again.

@neuromorph
Copy link
Contributor

If I change my display scaling to 125%, switch to the overview and back, then switch back display scaling to 100%. For me, the right part of the panel goes completely transparent until I switch to the overview and back again.

This seems like a different issue. It happens on a single monitor as well. Basically, the blur is not getting updated when the Display Scale is changed. Its good that the update can be forced by toggling the Overview. Similar update will need to be connected to the notify::scale-factor signal on the ThemeContext. Lets wait for Aurelien to shed more light on it and also on the original multi-monitor issue so they can be handled accordingly.

@KUPOinyourWINDOW
Copy link
Author

Hello @aunetx ,

I think this issue was introduced while fixing the "panel blur breaking up on startup with multiple monitors" bug

I am not sure what exactly was this bug so not sure if that will still work. Can you share a link or someone could test if they faced it before.

The upside is that the blur is refreshed when the panel could change position, so it's good for the original issue, but the workarea also seems to change when opening and closing apps.

Correct, the work area will change with change in panel or apps. I believe the original issue is only to do with Panel position and size. With that assumption I thought we can connect to PanelBox ['notify::size', 'notify::position'] signals. I then noticed that those are already being connected to update_size() and I wonder that maybe enough instead of full reset(). However, I have shifted the call to update_size after making all the connections so that there isn't any gap between setting size and connecting. If this helps for the earlier issue then workareas-changed is not needed so I have commented it.

If someone wants to try out, you can replace your local panel.js under BMS components dir with the one attached here (after unzip). Then logout and log back in for changes to reflect. It should stop the flicker though also test for the multi-monitor issue if you are aware of it.

panel.zip

I can confirm that this has fixed the flickering so far, but can't speak to how it affects multiple monitors or fractional scaling.

@neuromorph
Copy link
Contributor

OK, I have another update. This should fix both flicker and fractional scaling issues. It likely also helps with the multi-monitor issue as far as I can tell. But since I am not sure on that issue, that part needs to be confirmed by someone who knows and can test for it.

There are two files panel.js and overview.js in the attached zip that you will need to replace under components dir.

Aurelien, about the overview.js:
When monitoring log for the scaling issue, I noticed overview was throwing an error. Basically, the overview_background_group was not getting removed from Main.layoutManager.overviewGroup during cleanup and so it was complaining about prev parent in update_backgrounds(). I have added a fix for that.

panel_overview.zip

@alisson3000br
Copy link

I've been using Ubuntu for over a year, and last week, I decided to try Fedora. However, I switched back to Ubuntu in less than two days. It’s truly the best distro, and I found it clearly faster also.

@KUPOinyourWINDOW
Copy link
Author

I've been using Ubuntu for over a year, and last week, I decided to try Fedora. However, I switched back to Ubuntu in less than two days. It’s truly the best distro, and I found it clearly faster also.

I don't know why you think a bug report for a gnome extension is the best place for you to justify to yourself your distribution of choice, but please don't. We're happy for you, but this is a place to get issues fixed. Reddit or twitter is what you're looking for.

@n3thshan
Copy link

n3thshan commented Dec 3, 2024

OK, I have another update. This should fix both flicker and fractional scaling issues. It likely also helps with the multi-monitor issue as far as I can tell. But since I am not sure on that issue, that part needs to be confirmed by someone who knows and can test for it.

There are two files panel.js and overview.js in the attached zip that you will need to replace under components dir.

Aurelien, about the overview.js: When monitoring log for the scaling issue, I noticed overview was throwing an error. Basically, the overview_background_group was not getting removed from Main.layoutManager.overviewGroup during cleanup and so it was complaining about prev parent in update_backgrounds(). I have added a fix for that.

panel_overview.zip

this fixes #689

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

No branches or pull requests

7 participants