Closed
Bug 1270985
Opened 9 years ago
Closed 8 years ago
Mouse cursor no longer hides when keys are pressed
Categories
(Core :: Widget: Cocoa, defect)
Tracking
()
VERIFIED
FIXED
mozilla50
People
(Reporter: erik, Assigned: masayuki)
References
Details
(Keywords: regression)
Attachments
(1 file)
(deleted),
text/x-review-board-request
|
m_kato
:
review+
lizzard
:
approval-mozilla-aurora+
lizzard
:
approval-mozilla-beta+
|
Details |
As of a recent version of Developer Edition, the mouse cursor no longer hides when keys are pressed. For example, this used to work:
1. Visit a long page.
2. Press the down arrow key to scroll.
3. The mouse cursor hides ("obscures" in Mac parlance) until the mouse is moved.
Now, instead of #3, the cursor remains visible all the time, blocking part of the page.
Hi Erik,
I've managed to reproduce this issue on Windows 7 x32 using the latest FF release(46.0.1) and latest Nightly version(49.0a1). I'm not sure if this is an intentional change or not, so I tried to bisect this bug in order to find out where did it change. I went back as far as Firefox 5 and this issue is still reproducible. Could you please point out that is the last version on which this worked correctly?
Thanks,
Paul.
Flags: needinfo?(erik)
Reporter | ||
Comment 2•9 years ago
|
||
I don't know about Windows, but it works correctly on the Mac on 47.0b8. (I don't think Windows does the cursor-hiding thing in general.)
Flags: needinfo?(erik)
Reporter | ||
Comment 3•9 years ago
|
||
I narrowed it down to the exact version of Aurora it appears on (Aurora being where I originally noticed the bug). The first appearance of the bug is in the 4/26 build: https://ftp.mozilla.org/pub/firefox/nightly/2016/04/2016-04-26-00-41-07-mozilla-aurora/firefox-48.0a2.en-US.mac.dmg.
Comment 4•8 years ago
|
||
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:49.0) Gecko/20100101 Firefox/49.0
I have successfully reproduced this on the latest Nightly (49.0a1, Build ID 20160606030219), but not on the latest Firefox release on Mac OS 10.11.
Last good revision: 29022393615224517283b16adae938128f75e27b
First bad revision: eb7c36e2ef5d48262bc8566da9ea37623e7d0883
Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=29022393615224517283b16adae938128f75e27b&tochange=eb7c36e2ef5d48262bc8566da9ea37623e7d0883
Any idea what might have caused this?
Component: Untriaged → Widget: Cocoa
Flags: needinfo?(masayuki)
Product: Firefox → Core
Assignee | ||
Comment 5•8 years ago
|
||
Ah, this is a simple mistake. Taking this.
Assignee: nobody → masayuki
Blocks: 1137563
Status: NEW → ASSIGNED
Flags: needinfo?(masayuki)
Keywords: regression
Assignee | ||
Comment 6•8 years ago
|
||
Assignee | ||
Comment 7•8 years ago
|
||
[Tracking Requested - why for this release]: Simple regression of bug 1137563. We should take this because of very low risk fix.
status-firefox47:
--- → unaffected
status-firefox48:
--- → affected
status-firefox49:
--- → affected
status-firefox50:
--- → affected
tracking-firefox48:
--- → ?
tracking-firefox49:
--- → ?
tracking-firefox50:
--- → ?
Assignee | ||
Comment 8•8 years ago
|
||
Currently, TextInputHandler::DispatchEvent() isn't used for WidgetKeyboardEvent nor WidgetCompositionEvent since TextEventDispatcher directly uses nsIWidget::DispatchEvent(). Therefore, old code hiding mouse cursor at dispatching eKeyPress event is never run in current mozilla-central since TextInputHandler dispatches eKeyPress events via TextEventDispatcher.
Additionally, it's not enough to hide mouse cursor only when widget dispatches eKeyPress events because if IME starts composition, eKeyPress event won't be fired until finishing the composition. So, I think that we should hide mouse cursor at receiving native keydown events. The event handler receives keydown events before IME handles them. Additionally, modifier key events which won't cause eKeyPress events are not using native keydown event handler, fortunately. So, I believe that it's the best place to do it.
Review commit: https://reviewboard.mozilla.org/r/58448/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/58448/
Attachment #8761113 -
Flags: review?(m_kato)
Comment 9•8 years ago
|
||
Comment on attachment 8761113 [details]
Bug 1270985 Hide mouse cursor in native keydown event handler if Command key isn't pressed
https://reviewboard.mozilla.org/r/58448/#review55324
Attachment #8761113 -
Flags: review?(m_kato) → review+
Comment 10•8 years ago
|
||
Pushed by masayuki@d-toybox.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/46de82827435
Hide mouse cursor in native keydown event handler if Command key isn't pressed r=m_kato
Comment 11•8 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Assignee | ||
Comment 12•8 years ago
|
||
Comment on attachment 8761113 [details]
Bug 1270985 Hide mouse cursor in native keydown event handler if Command key isn't pressed
Approval Request Comment
[Feature/regressing bug #]: Regression of bug 1137563
[User impact if declined]: The mouse cursor is never hidden by any keyboard operation (it should be hidden until next mousemove event).
[Describe test coverage new/current, TreeHerder]: Landed on m-c.
[Risks and why]: Low. Before bug 1137563, we hide mouse cursor at dispatching keypress events. However, the approach isn't available after it since keypress events are fired by another XP level class (TextEventDispatcher) automatically. Therefore, this patch makes mouse cursor hidden at receiving native key events. See the comment in the patch when the mouse cursor is hidden by this new approach.
[String/UUID change made/needed]: Nothing.
Attachment #8761113 -
Flags: approval-mozilla-beta?
Attachment #8761113 -
Flags: approval-mozilla-aurora?
Comment on attachment 8761113 [details]
Bug 1270985 Hide mouse cursor in native keydown event handler if Command key isn't pressed
Recent regression, looks like a simple fix, let's uplift this to aurora and beta.
Attachment #8761113 -
Flags: approval-mozilla-beta?
Attachment #8761113 -
Flags: approval-mozilla-beta+
Attachment #8761113 -
Flags: approval-mozilla-aurora?
Attachment #8761113 -
Flags: approval-mozilla-aurora+
Tracking since this regressed in 48. It would be good to verify the fix in beta, once it lands.
Comment 15•8 years ago
|
||
bugherder uplift |
Comment 16•8 years ago
|
||
Comment 17•8 years ago
|
||
I investigated this issue on
- 48.0b2 build2 (20160620091522)
- latest Aurora 49.0a2 (2016-06-23)
- latest Nightly 50.0a1 (2016-06-23)
using Mac OS X 10.11.
Excepting 48.0b2 build2, the fix landed and it works as expected. Still, there is one thing that needs clarification: during the testing, I used a Windows particular keyboard and there are keys (like Alt, Shift, Caps Lock and Windows) that don't cause the cursor hiding. Is this intended or not?
Thank you in advance!
Note: I will continue investigating the beta build, once the fix will land.
Flags: needinfo?(masayuki)
Reporter | ||
Comment 18•8 years ago
|
||
That is intended: modifier keys never trigger cursor obscuring, likely because they don't output characters that the mouse cursor might obscure.
Flags: needinfo?(masayuki)
Assignee | ||
Comment 19•8 years ago
|
||
(In reply to Erik Rose [:erik][:erikrose] from comment #18)
> That is intended: modifier keys never trigger cursor obscuring, likely
> because they don't output characters that the mouse cursor might obscure.
Exactly. And also Cmd+Foo doesn't cause hiding the mouse cursor.
Comment 20•8 years ago
|
||
Thank you, :erik and :masayuki!
Based on previous comments, I will set the proper tracking and status flags.
Comment 21•8 years ago
|
||
Hello! I verified again this issue on 48.ob4 build1 (20160627144420) using
- Mac OS X 10.11.1
- Mac OS X 10.10.5
The fix looks good and I found no misbehavior. I set the corresponding flag.
Flags: qe-verify+ → qe-verify-
Updated•8 years ago
|
Flags: qe-verify-
You need to log in
before you can comment on or make changes to this bug.
Description
•