Message header popups open outside the application
Categories
(Thunderbird :: Message Reader UI, defect, P1)
Tracking
(thunderbird_esr128 unaffected, thunderbird135 unaffected, thunderbird136 fixed, thunderbird137 fixed)
| Tracking | Status | |
|---|---|---|
| thunderbird_esr128 | --- | unaffected |
| thunderbird135 | --- | unaffected |
| thunderbird136 | --- | fixed |
| thunderbird137 | --- | fixed |
People
(Reporter: aleca, Assigned: freaktechnik)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
|
48 bytes,
text/x-phabricator-request
|
corey
:
approval-comm-beta+
|
Details | Review |
STR:
- Open a single message in the message pane (it doesn't matter if it's the about3Pane, a tab, or a standalone window)
- Click on one of the recipients in the message header.
The menupopup opens at the bottom right of the monitor, outside the the application.
Comment 1•1 year ago
|
||
I've been seeing this for several days. It goes back to at least 2025-02-14 build
Calum, can you find the regression range?
| Reporter | ||
Comment 2•1 year ago
|
||
I found out that event.screenX is actually returning the wrong value as it reports a bigger number than the correct value of the clicked event.
https://searchfox.org/comm-central/rev/7a274fcf6967456777f822a1f1f38d108a5ddb69/mail/base/content/msgHdrView.js#3005
| Assignee | ||
Comment 3•1 year ago
|
||
I'm only seeing it on hi-dpi screens.
| Reporter | ||
Comment 4•1 year ago
|
||
Emilio, are you aware of any m-c changes that might affect the screen size detection in HiDPI?
So weird that it only happens in the message header and nowhere else
| Assignee | ||
Comment 5•1 year ago
|
||
3:29.54 INFO: Last good revision: 7f6d0270a648c0332ffec5a4b64060ff3210ddd0
3:29.54 INFO: First bad revision: 1d991e4853051fdbbb490ef6eaacd52a2e91929a
3:29.54 INFO: Pushlog:
https://hg.mozilla.org/comm-central/pushloghtml?fromchange=7f6d0270a648c0332ffec5a4b64060ff3210ddd0&tochange=1d991e4853051fdbbb490ef6eaacd52a2e91929a
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 6•1 year ago
|
||
Backing out bug 1931692 seems to fix it for me locally.
| Assignee | ||
Comment 7•1 year ago
|
||
Setting flags based on regressor.
| Reporter | ||
Comment 8•1 year ago
|
||
Gentle ping to Masayuki for some help on this.
| Reporter | ||
Updated•1 year ago
|
| Assignee | ||
Comment 9•1 year ago
|
||
The regression is gone even by just swapping these two lines back: https://searchfox.org/mozilla-central/rev/83e29f5ee2e301ac7224e2927bddda16634b1897/dom/events/UIEvent.cpp#167-171
Comment 10•1 year ago
|
||
Yeah so it seems this is only an issue if you query the event post dispatch, so a workaround could be getting it before the await in that function.
But it still seems there's a Gecko bug here. Masayuki can hopefully take a closer look. Thanks for finding it!
| Assignee | ||
Comment 11•1 year ago
|
||
Updated•1 year ago
|
| Reporter | ||
Updated•1 year ago
|
Hmm. Here is the original code.
void UIEvent::DuplicatePrivateData() {
mLayerPoint = GetLayerPoint();
// GetScreenPoint converts mEvent->mRefPoint to right coordinates.
// Note that mPresContext will be cleared by Event::DuplicatePrivateData().
// Therefore, we need to use mPresContext before calling it.
const CSSIntPoint screenPoint = RoundedToInt(
Event::GetScreenCoords(mPresContext, mEvent, mEvent->mRefPoint)
.valueOr(CSSIntPoint{0, 0}));
const CSSToLayoutDeviceScale scale = mPresContext
? mPresContext->CSSToDevPixelScale()
: CSSToLayoutDeviceScale(1);
Event::DuplicatePrivateData();
MOZ_ASSERT_IF(!mEventIsInternal, !mPresContext);
mEvent->mRefPoint = RoundedToInt(screenPoint * scale);
}
scale is computed before Event::DuplicatePrivateData() clears mPresContext. Then, it's used when caching mRefPoint which is now screen point rather than relative offset in the widget. This meaning change must cause making me have misunderstood...
Comment 13•1 year ago
|
||
Pushed by john@thunderbird.net:
https://hg.mozilla.org/comm-central/rev/e8bd76d274b2
Work around screen coordinates being wrong on HiDPI screens after await. r=aleca
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 14•1 year ago
|
||
Comment on attachment 9467809 [details]
Bug 1949890 - Work around screen coordinates being wrong on HiDPI screens after await. r=#thunderbird-front-end-reviewers
[User impact if declined]
- When clicking on email adresses in the message header users with HiDPI screens will get the popup at the wrong screen position. It will likely be off screen.
[Is this code covered by automated tests?]
- No (I think partially, but not the regressing issue for sure)
[Has the fix been verified in Daily? (or Beta for an ESR uplift?)]
- It's been verified in builds off c-c. The fix is also well understood.
[Needs manual test from QA?]
- Unsure, I would tend toward yes?
- Have HiDPI screen
- Select message in 3pane
- Click on sender or recipient email
- Observe popup location
[List of other uplifts needed]
- Not aware of any dependencies
[Risk to taking this patch]
- Low
[Why is the change risky/not risky? (and alternatives if risky)]
- It only changes when we read values to work around the fairly well understood bug.
[String changes made/needed]
- none
Comment 15•1 year ago
|
||
Comment on attachment 9467809 [details]
Bug 1949890 - Work around screen coordinates being wrong on HiDPI screens after await. r=#thunderbird-front-end-reviewers
[Triage Comment]
Approved for beta
Comment 16•1 year ago
|
||
| bugherder uplift | ||
Thunderbird 136.0b3:
https://hg.mozilla.org/releases/comm-beta/rev/6ab2d22ef311
Updated•1 year ago
|
Description
•