Closed Bug 1265806 Opened 8 years ago Closed 8 years ago

Scrollbar dragging with scroll-to-click goes crazy and oscillates between the top and the bottom end of the scrollbar

Categories

(Core :: Panning and Zooming, defect)

48 Branch
Unspecified
Windows
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla48
Tracking Status
firefox47 --- unaffected
firefox48 --- fixed

People

(Reporter: arni2033, Assigned: kats)

References

Details

(Keywords: regression, Whiteboard: [gfx-noted])

Attachments

(1 file)

>>>   My Info:   Win7_64, Nightly 48, 32bit, ID 20160416030220
STR:
1. Open https://bugzilla.mozilla.org
2. Open devtools -> inspector, close <body> node, Alt+Click on the dropmerker near <body>
3. Hover mouse over vertical scrollbar thumb, hold left mouse button, move mouse pointer by 10px to the left from scrollbar, then slowly move it vertically to the bottom of markup

AR:  Scrollbar goes crazy and oscillates between the top and the bottom
ER:  Should follow mouse pointer

Note:  doesn't happen if I keep mouse within scrollbar, but come on.

This is regression from bug 1258851. Regression range:
> https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=70ec09a1709462a12629036ea16b934db182ad96&tochange=3afbfb3631bd164dc76fa912e614233970385aa0
I can reproduce on Windows but not OS X (even with the scrollbar set to always show). I'll look into it.
Assignee: nobody → bugmail.mozilla
OS: Unspecified → Windows
Whiteboard: [gfx-noted]
Version: unspecified → 48 Branch
Preliminary investigation indicates that the APZ code isn't detecting the mousedown as hitting a scrollbar, which causes the observed behaviour because we apply the untransforms when we shouldn't be.
So the layer structure for the scrollbars is different on Windows than on Mac. On Mac it looked like this:

- ContainerLayer (scrollbar)
  - horizontal track
    - horizontal thumb (hscroll)
  - vertical track
    - vertical thumb (vscroll)

but on Windows it looks like this;

- ContainerLayer
  - PaintedLayer
  - ContainerLayer (hscroll)
    - painted layer
  - ContainerLayer (vscroll)
    - painted layer

I suspect the difference is coming from the existence of the scroll corner, but I didn't look into it too closely. Either way, the fix is relatively straightforward, I just need to combine what was happening before and after bug 1258851.
Attached patch PatchSplinter Review
Attachment #8743417 - Flags: review?(rbarker)
Attachment #8743417 - Flags: review?(rbarker) → review+
https://hg.mozilla.org/mozilla-central/rev/411f7ae1704d
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
You need to log in before you can comment on or make changes to this bug.