Leftover lines under menu items after hovering in the new AppMenu.
Categories
(Core :: Graphics, defect)
Tracking
()
People
(Reporter: bwinton, Assigned: mstange)
References
(Blocks 1 open bug)
Details
(Whiteboard: [proton-hamburger-menu])
Attachments
(2 files)
As shown in the screenshot…
Comment 1•4 years ago
|
||
This looks like an invalidation bug to me. Hey jrmuizel, do you know what the best way of approaching this problem would be?
Updated•4 years ago
|
Comment 2•4 years ago
|
||
What platform is this on? Is this a regression?
Reporter | ||
Comment 3•4 years ago
•
|
||
MacOS 11.1 Big Sur, 2018 MacBook Pro.
I don't know whether it's a regression or not, because the highlights are new. (Added in https://bugzilla.mozilla.org/show_bug.cgi?id=1688744 I think. Mike would know better.)
Mossop (cc-ed) also saw it, perhaps on a different platform.
Comment 4•4 years ago
|
||
Yeah, I'd say bug 1688744 is where we added the CSS where we first started noticing this. Frustratingly, I can't seem to reproduce this reliably on a new profile.
Comment 5•4 years ago
|
||
I'm also noticing it on my macOS 10.15.7 Catalina MBP. I think I've only seen it when the window is on the Retina display, but I can't say for certain.
Comment 6•4 years ago
|
||
Is dark mode needed to reproduce the problem?
Comment 7•4 years ago
|
||
I have also only noticed this with dark mode, so... potentially? But we're not sure.
To get the CSS applied from the bug I referred to, create and set: browser.proton.appmenu.enabled
to true
, then restart. Note that just a few days ago, "Library" was removed from that menu, but both "Bookmarks" and "History" are there, and I've been able to see the lines within those submenus as well.
Reporter | ||
Comment 8•4 years ago
|
||
I just reproduced it on the Light theme with 87.0a1 (2021-01-28) (64-bit), so I don't think it's dark-mode only.
Comment 9•4 years ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #6)
Is dark mode needed to reproduce the problem?
I do not run with dark mode.
Comment 10•4 years ago
|
||
I can't reproduce it on 10.15.6
Assignee | ||
Comment 11•4 years ago
|
||
I can reproduce this. Needinfo'ing myself to debug it.
Assignee | ||
Comment 13•4 years ago
•
|
||
This happens when the popup opens at a fractional position in terms of "logical coordinates". I can only get it to reproduce when I have the Proton tab bar enabled, which causes the toolbar to be located at a different fractional position than before.
We try to open the popup widget at a Y position of, say, 120.5. For window positions and sizes, macOS only allows integer "logical" coordinates. So this code makes us round the widget position to an integer (121) and we end up with a mViewToWidgetOffset
of (0, 0.5).
From now on we have a confusion between these three spaces: LayerManager space, view space, and widget space:
- Invalidation thinks LayerManager space == view space.
- Some places during painting think LayerManager space == widget DrawTarget space == widget space.
So the invalidated rect is shifted by 0.5 logical pixels (== 1 device pixel) compared to the painted rect. The shifting happens between the InvalidateViewNoSuppression
call and the nsChildView::Invalidate
call, in InvalidateWidgetArea
.
Questions:
- Do we want to have a non-zero
mViewToWidgetOffset
in this case, or should we snap the view position together with the widget position? Would that have other bad effects? - Should LayerManager space match widget space or view space?
In an ideal world, nsViews would not exist and there would be no "view to widget offset".
Assignee | ||
Comment 14•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 15•4 years ago
|
||
(In reply to Markus Stange [:mstange] from comment #13)
- Do we want to have a non-zero
mViewToWidgetOffset
in this case, or should we snap the view position together with the widget position? Would that have other bad effects?- Should LayerManager space match widget space or view space?
Without paging all of this back into my head my initial answers would be mViewToWidgetOffset should be non-zero in this case and having the view dims different from the frame dims is not what we want.
We do snapping in layer manager space, so it has to be widget space, no?
In an ideal world, nsViews would not exist and there would be no "view to widget offset".
I think we might need a 'frame to widget offset' or something similar to solve the same problem as the view to widget offset, although I'm not 100% sure.
Comment 16•4 years ago
|
||
Comment 17•4 years ago
|
||
bugherder |
Updated•4 years ago
|
Updated•4 years ago
|
Comment 19•4 years ago
|
||
I was able to reproduce the issue on Firefox 87.0a1 (2021-01-28) under macOS 11.2.3.
The issue is no longer reproducible on Firefox 88.0a1 (2021-03-21). Tests were performed on macOS 11.2.3, Ubuntu 20.04, and Windows 10.
Updated•4 years ago
|
Description
•