Message header popups open outside the application
Categories
(Thunderbird :: Message Reader UI, defect, P1)
Tracking
(thunderbird_esr128 unaffected, thunderbird135 unaffected, thunderbird136 affected, thunderbird137 affected)
Tracking | Status | |
---|---|---|
thunderbird_esr128 | --- | unaffected |
thunderbird135 | --- | unaffected |
thunderbird136 | --- | affected |
thunderbird137 | --- | affected |
People
(Reporter: aleca, Assigned: freaktechnik)
References
(Regression)
Details
(Keywords: regression)
Attachments
(1 file)
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 day 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 day 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 day ago
|
||
I'm only seeing it on hi-dpi screens.
Reporter | ||
Comment 4•1 day 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 day 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 day ago
|
Assignee | ||
Updated•1 day ago
|
Assignee | ||
Comment 6•1 day ago
|
||
Backing out bug 1931692 seems to fix it for me locally.
Assignee | ||
Comment 7•1 day ago
|
||
Setting flags based on regressor.
Reporter | ||
Comment 8•1 day ago
|
||
Gentle ping to Masayuki for some help on this.
Reporter | ||
Updated•1 day ago
|
Assignee | ||
Comment 9•1 day 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 day 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 day ago
|
||
Updated•1 day ago
|
Reporter | ||
Updated•1 day 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•18 hours 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
Description
•