Closed Bug 915271 Opened 7 years ago Closed 7 years ago

With zoom applied, wiggling the mouse cursor sometimes resets the zoom

Categories

(Core :: Panning and Zooming, defect)

x86_64
Windows 8.1
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla28

People

(Reporter: jimm, Assigned: kats)

References

()

Details

(Whiteboard: [block28])

No description provided.
Blocks: 915724
No longer blocks: metro-apzc
I'm not able to reproduce this exactly, although I can reproduce a slightly different issue. I do this:
1. Load the page at http://www.gutenberg.org/files/11/11-h/11-h.htm
2. Move the mouse cursor around to ensure that it shows up, changes to an I-bar while over text, is able to drag to select text, etc.
3. Pinch zoom in a little bit
4. Move the mouse cursor around to ensure that it shows up, chagnes to an I-bar while over text, able to drag and select text, etc.

At step 4 things, sometimes things behave as expected.

However, *some* of the time, after zooming in, when I move the mouse, the page immediately repaints back at the original (zoomed out) level, without moving the viewport, so you end up with parts of the screen just white. I'm not sure why that happens; I will dig into it a little more.
Ok, so the problem I was seeing in comment 1 is because of a couple of things interacting badly. First of all, the zoom in step 3 of the STR is never actually propagated to Gecko (this is bug 902505), so Gecko always thinks things are zoomed out. Secondly, when I wiggle the mouse around, Gecko does a repaint but for some reason the layers aren't retained, and so it ends up re-creating the scrollable container layer rather than re-using the same objects as from the last paint. This means that the APZC instance is destroyed and re-created as well, and so when the NotifyLayersUpdate call comes in, the isDefault boolean is true and the APZC accepts the FrameMetrics passed in.

This last part is all working as intended, the only "wrong" behaviour is that the layer isn't getting retained properly. Even that isn't necessarily a bug since that's an optimization based on heuristics (AFAIK) and so the code should work even if layer retaining doesn't.

I'm (a) hijacking this bug to cover the issue I described in comment 1, since comment 0 didn't have any STR, and (b) making it dependent on bug 902505 since I think that will fix most or all of this issue. If there is still a problem after bug 902505 is fixed, we might need to revisit this. Moving it to P&Z since if there is any follow-up work that needs to be done here it will be in the APZC code.
Component: Pan and Zoom → Panning and Zooming
Depends on: 902505
Product: Firefox for Metro → Core
Summary: With zoom applied, the mouse cursor no longer displays in the browser → With zoom applied, wiggling the mouse cursor sometimes resets the zoom
Duplicate of this bug: 918342
Whiteboard: [block28]
This also appears to have been fixed with my patches on other bugs, as expected. They have not yet landed, so I'll leave this open and re-test once it's in.
wfm off sunday's tip.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Assignee: nobody → bugmail.mozilla
Target Milestone: --- → mozilla28
OS: Windows 8 Metro → Windows 8.1
You need to log in before you can comment on or make changes to this bug.