Autoscroll icon shows up on the far side of the primary monitor on when window is on secondary monitor
Categories
(Core :: Widget: Win32, defect)
Tracking
()
People
(Reporter: RyanVM, Assigned: emilio)
References
(Regression)
Details
(Keywords: multi-monitors, regression)
Reporter | ||
Comment 1•6 years ago
|
||
Comment 2•6 years ago
|
||
Reporter | ||
Comment 3•6 years ago
|
||
Comment 4•6 years ago
|
||
Reporter | ||
Comment 5•6 years ago
|
||
Comment 7•6 years ago
|
||
Reporter | ||
Comment 8•6 years ago
|
||
Comment 9•6 years ago
|
||
Updated•6 years ago
|
Comment 10•6 years ago
|
||
Comment 11•6 years ago
|
||
Comment 12•6 years ago
|
||
Comment 13•6 years ago
|
||
Comment 16•6 years ago
|
||
Comment 17•6 years ago
|
||
I've looked at this a bit on Windows 10 with two monitors differently-scaled. Regarding the other places you cited in comment 9, Gijs:
- The "all tabs" dropdown list is size limited incorrectly on parts of a second monitor in a similar way (due to
PanelMultiView
's_calculateMaxHeight
getting the wrong screen, I think). So that's also wrong in usingscreenX
,screenY
as input toscreenForRect()
. The coordinates passed to that are supposed to be desktop pixels, not CSS pixels. - I'm not sure about the
dragend
handler intabbrowser-tabs
, but I think thescreenX
,screenY
there are desktop pixels, which makes some sense as the destination is somewhere on the desktop. It seems to be consistently getting the correct screen, but what it's doing afterwards to limit the size and position of the window is wrong if the drag started on the second monitor (ending on either). There is some confusion of units; I'm not sure whatavailX.value = (availX.value - fullX.value) * scaleFactor + fullX.value;
is supposed to be doing, doesfullX
need to be scaled or not?
screenManager.screenForRect(screenX * window.devicePixelRatio, screenY * window.devicePixelRatio, 1, 1)
seems to pick the screen properly, but I don't know enough about how dPR maps to device/desktop pixels to conclude that it's the right thing to do. Setting const scaleFactor = window.devicePixelRatio
seems to work for the rest, but just using screenX
, screenY
in openPopupAtScreen()
seems to limit the icon to stay on the screen all by itself anyway.
Comment 18•6 years ago
|
||
(In reply to Adam Gashlin [:agashlin] from comment #17)
just using
screenX
,screenY
inopenPopupAtScreen()
seems to limit the icon to stay on the screen all by itself anyway.
Yeah, unfortunately this also resizes the popup (per bug 1401477) which is how we got into this mess in the first place. :-(
I'll try and look at updating all these bits of code to make more sense. Thanks for the explanations.
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Reporter | ||
Comment 19•3 years ago
|
||
This is still lingering around and still annoying to hit on a daily basis :(. GCP, is this something we could get on the OS Integration radar?
Reporter | ||
Updated•3 years ago
|
Comment 20•3 years ago
|
||
Maybe! Let's move components, as I understand this is Windows specific.
Updated•3 years ago
|
Comment 21•3 years ago
|
||
Set release status flags based on info from the regressing bug 1401477
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Updated•3 years ago
|
Reporter | ||
Updated•3 years ago
|
Updated•3 years ago
|
Assignee | ||
Comment 22•3 years ago
|
||
Pretty sure this is likely bug 1741830 too.
Reporter | ||
Comment 23•3 years ago
|
||
Confirmed! Thank you very much for fixing this, Emilio!
Updated•3 years ago
|
Comment 24•3 years ago
|
||
I was able to reproduce the issue with an old Firefox Nightly build (2018-07-10) under WIndows 11 with the information provided in Comment 0 on two 4k monitors with 200% DPI.
The issue is fixed on Firefox 98.0 on the same system.
Description
•