Closed
Bug 987121
Opened 11 years ago
Closed 11 years ago
Auto-scroll doesn't stop anymore in center position (autoscroll)
Categories
(Firefox :: General, defect)
Tracking
()
VERIFIED
FIXED
Firefox 31
Tracking | Status | |
---|---|---|
firefox29 | --- | unaffected |
firefox30 | - | fixed |
firefox31 | + | verified |
People
(Reporter: ts.bugzilla, Assigned: billm)
References
(Depends on 1 open bug)
Details
(Keywords: regression)
Attachments
(1 file, 1 obsolete file)
1001 bytes,
patch
|
Felipe
:
review+
|
Details | Diff | Splinter Review |
Autoscroll used to stop moving when the mouse cursor is placed in a "neutral" position, e.g. on a position with the same y-coordinate as the auto-scroll indicator for vertical scrolling.
Maybe related to/caused by bug 938359?
Reporter | ||
Comment 1•11 years ago
|
||
(In reply to Thomas Stache from comment #0)
> Autoscroll used to stop moving when the mouse cursor is placed in a
> "neutral" position, e.g. on a position with the same y-coordinate as the
> auto-scroll indicator for vertical scrolling.
Sigh... Missed to say that it keeps scrolling slowly now!
Reporter | ||
Comment 2•11 years ago
|
||
This is also reproducible on Aurora 30.0a2 (2014-03-23).
![]() |
||
Comment 3•11 years ago
|
||
Regression window:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=a2ec4ab256e8&tochange=7d192442dfca
Blocks: 938359
Status: UNCONFIRMED → NEW
status-firefox29:
--- → unaffected
status-firefox30:
--- → affected
status-firefox31:
--- → affected
tracking-firefox30:
--- → ?
tracking-firefox31:
--- → ?
Ever confirmed: true
Keywords: regression
Product: Core → Firefox
Version: Trunk → 30 Branch
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → wmccloskey
Reporter | ||
Comment 4•11 years ago
|
||
Being more specific: the scrolling doesn't stop when the mouse is over the auto-scroll symbol.(In reply to Thomas Stache from comment #0)
> Autoscroll used to stop moving when the mouse cursor is placed in a
> "neutral" position, e.g. on a position with the same y-coordinate as the
> auto-scroll indicator for vertical scrolling.
Being more specific: the scrolling doesn't stop when the mouse is over the auto-scroll symbol. Next to it (offset to the side for the vertical case) it stops.
Assignee | ||
Comment 5•11 years ago
|
||
I can reproduce this. It looks like as long as the cursor is within the autoscroll circle its position is ignored.
Assignee | ||
Comment 6•11 years ago
|
||
It looks like the problem is that the content script doesn't get mousemove events when the cursor is over the autoscroll circle. The XUL window does get mousemove events in that case, which is why this worked before.
The only way I can see around this is to forward the mousemove events from the parent to the child. That's what this patch does.
Attachment #8398255 -
Flags: review?(felipc)
Comment 7•11 years ago
|
||
Wow, the irony... Alternatively, we could set up auto-forwarding from the circle too by modifying
nsEventStateManager::IsRemoteTarget (and/or HandleCrossProcessEvent). What do you think makes most sense from an implementation point of view?
Assignee | ||
Comment 8•11 years ago
|
||
(In reply to :Felipe Gomes from comment #7)
> Wow, the irony... Alternatively, we could set up auto-forwarding from the
> circle too by modifying
> nsEventStateManager::IsRemoteTarget (and/or HandleCrossProcessEvent). What
> do you think makes most sense from an implementation point of view?
Err, I don't know. I guess we could add a special attribute to the autoscroll circle's DOM node. I still think I prefer forwarding though. If the same problem occurs in other circumstances, then we could consider modifying IsRemoteTarget.
Comment 9•11 years ago
|
||
Oh, or I guess much simpler: we could just add pointer-events: none on the circle's DOM node, and it should just work. Can you see if that works? If not we will go with your patch
Assignee | ||
Comment 10•11 years ago
|
||
(In reply to :Felipe Gomes from comment #9)
> Oh, or I guess much simpler: we could just add pointer-events: none on the
> circle's DOM node, and it should just work. Can you see if that works? If
> not we will go with your patch
That doesn't seem to help, although I'm not sure why. I'm having a hard time tracing through how the code handles the pointer-events property.
Assignee | ||
Comment 11•11 years ago
|
||
On IRC, Felipe suggested using the mousethrough="always" attribute on the autoscroller XUL node. That worked. I looked into the code a little more to figure out why the one works and the other doesn't. I found this special handling of mousethrough here:
http://mxr.mozilla.org/mozilla-central/source/layout/xul/nsMenuPopupFrame.cpp#249
Apparently the autoscroller gets its own widget, and so we need to tell the widget code to handle mouse events specially. If I comment out this code, the mousethrough="always" attribute no longer fixes the problem in this bug.
I guess we might be able to change nsMenuPopupFrame to deal with pointer-events: none, but I'm probably not the best person to do that.
Attachment #8398255 -
Attachment is obsolete: true
Attachment #8398255 -
Flags: review?(felipc)
Attachment #8398739 -
Flags: review?(felipc)
Updated•11 years ago
|
Attachment #8398739 -
Flags: review?(felipc) → review+
Assignee | ||
Comment 12•11 years ago
|
||
Comment 13•11 years ago
|
||
(In reply to Bill McCloskey (:billm) from comment #11)
> I guess we might be able to change nsMenuPopupFrame to deal with
> pointer-events: none, but I'm probably not the best person to do that.
pointer-events: none will cause the mouse events to be ignored entirely, as it only deals within the same window. mousethrough="always" will forward the event to another window that is underneath the popup using OS layer mechanisms, so your use of mousethrough is correct here.
Comment 14•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 31
Comment 15•11 years ago
|
||
We would be interested in an uplift request for this!
Assignee | ||
Comment 16•11 years ago
|
||
Bug 938359 was backed out on aurora so 31 is now the only affected release.
Updated•11 years ago
|
QA Whiteboard: [good first verify]
Comment 17•11 years ago
|
||
status-firefox 30 : fixed -> disabled
Updated•11 years ago
|
Comment 18•11 years ago
|
||
I think this should get some QA attention since it was a regression.
Comment 19•11 years ago
|
||
Reproduced the issue using Nightly from 2014-03-16 (BuildID: 20140316030202).
Verified as fixed on Win 7 x64, Mac OS X 10.9.3, Ubuntu 13.04 x64, with latest Firefox 31 Beta 6 (BuildID: 20140630185627). Scrolling now stops as expected when the cursor is anywhere inside the autoscroll circle.
![]() |
||
Updated•10 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•