Mica is broken when switching light/dark theme
maicol07 opened this issue · 19 comments
Mica keeps being light, while I've switched to dark theme. Restarting firefox applies the new theme, but when switching back to light Mica keeps being dark.
Example recording:
https://user-images.githubusercontent.com/9463142/164411021-6c01c808-e77a-4f65-b40b-f8c8bcdf615a.mp4
Oh, yes you're right, I've missed that options (was set to Default). Switching that together with the Firefox theme works great!
Thank you.
Closing...
@Guerra24 I have to reopen this since there is an unfixed issue. When the theme changes and firefox is closed, the next reopening is still the previous Mica theme.
See this issue for more details: MicaForEveryone/MicaForEveryone#64
When the theme changes and firefox is closed, the next reopening is still the previous Mica theme.
2022-04-25_21-02-20.mp4
Works here. MFE's Firefox rule is set to System.
🤔 I already have the same rule but the issue persists...
@Guerra24 I can also reproduce the issue, however not in the order that you shown in the video, maybe do in this order instead:
- Open Firefox. Confirm that the correct theme (dark/light) is rendered.
- Close Firefox.
- Change the theme
- Reopen Firefox. Confirm that it renders the wrong theme.
In your video, you changed the theme before closing Firefox, which doesn't seem to trigger this bug.
EDIT: Reproducing video
Firefox-MFE-System.mp4
Well, that's acrylic... afaik it does not have theme-specific colors. Also since I'm running stable Win11 I have not tested any of the other backdrop types. Regardless, I tried and still works just fine.
explorer_2022-04-29_19-21-17.mp4
That aside this is something I can't fix from my side unfortunately.
The same happens with Mica actually (sorry for the horrible video btw). And also looks like we are running dev builds while you are running stable. I generally think this is a bug related to Firefox, since this behavior doesn't shown on any other apps, only Firefox.
Firefox-MFE-System32.mp4
.
Closing this since the issue is unfixable from my side.
I've found a workaround for this issue: I've written an AutoHotKey script that automatically triggers reload when theme has changed and Firefox window is active (or is opened):
https://github.com/maicol07/AHK-scripts/blob/main/FixFirefoxMFE.ahk
Feel free to improve the script if you want!
Just upgraded to 22621 and so far no issues on my side in both stable and nightly.
Strange, it still happens on my machine (25140). It looks like Firefox is automatically changing DWMWA_USE_IMMSERIVE_DARK_MODE
, because when I delay execution of DwmSetWindowAttribute
, everything works perfectly.
After some Google digging, this problem is most likely caused by Firefox.
https://bugzilla.mozilla.org/show_bug.cgi?id=1734359
https://hg.mozilla.org/integration/autoland/rev/b94153cca1f7
EDIT: The title bar bug happens even without MFE, or any other program messing with Firefox's immersive dark mode attributes. So, it's definitely a Firefox bug.
EDIT 2: Firefox uses a function within the LookAndFeel
class in order to determine whether it should use dark mode for the title bars. In the LookAndFeel.h
file, the function returns the value of a field. Haven't managed to find out where the field is set though, nor the source file of the LookAndFeel
class (commonly it would be LookAndFeel.cpp
, but the file is missing).
EDIT 3: Looks like this function is to blame: https://github.com/mozilla/gecko-dev/blob/master/widget/LookAndFeel.h#L391.
Btw are you all sure Titlebar color is set to System in MFE? I can replicate the issue when set to Default but with System it does work just fine.
2022-06-19_01-27-42.mp4
Btw are you all sure Titlebar color is set to System in MFE? I can replicate the issue when set to Default but with System it does work just fine.
Yes. And as I said before, it does not matter whether MFE is used or not. This is a bug within Firefox, not MFE or this theme.
Whether MFE works or not in this case is pretty much a hit or miss. Some systems have Firefox applying dark theme before MFE and doesn't cause this bug; while others have MFE applying dark theme first, leading to this bug.
On my system, Firefox takes like 3 seconds to initialize, while MFE only needs like 1 for applying the title bar color to Firefox. Yours looks pretty much instant.
Okay, so this is the issue. Firefox theme detection is somehow off by one and since it's a bug in Firefox it can be reported through bugzilla and it should be valid since the issue is visible when the titlebar is enabled. I can do it but I'm not sure when, if you want to do it just let me know otherwise some time next week I will.
You can go ahead.