Closed Bug 1194027 Opened 9 years ago Closed 8 years ago

[e10s] DoubleClicking a select doesn't collapse when clicking on the dropmarker


(Core :: Layout: Form Controls, defect, P1)




Tracking Status
e10s + ---
firefox43 --- affected
firefox51 --- fixed


(Reporter: arni2033, Assigned: enndeakin)


(Blocks 1 open bug, )


(Whiteboard: e10st?)


(3 files)

STR:   (Win7, Nightly 43.0a1 (2015-08-12))
1. Open (attachment on bug 1186972)
   OR page  data:text/html,<select><option>First<option>Second
2. DoubleClick on dropmarker

Result:       The drop-down list hasn't collapsed
Expectations: It should've collapsed

// I have mentioned this in comments bug 1186972 comment 8, bug 1186972 comment 10
A double click is just the same as clicking it twice.  It will open, then close or close, then open depending on starting state.  This is how it works on Release.  And Nightly e10s performs exactly the same.
Closed: 9 years ago
Resolution: --- → INVALID
Please watch the video and tell what OS have you used for the testing
Flags: needinfo?(twalker)
Ah, my apologies. So the start state is closed, then in the end it doesn't close for you.  I am on Mac OSX.  In the video, are you doing a third click away from the select item?  (making it close)
Flags: needinfo?(twalker)
OS: Unspecified → Windows
Hardware: Unspecified → All
Resolution: INVALID → ---
(In reply to [:tracy] Tracy Walker - QA Mentor from comment #3)
> In the video, are you doing a third click away from the select item?  (making it close)
Yes, on the video I wait a bit, then click on the free area to show the issue again
tracking-e10s: --- → ?
Depends on: 1186972
Blocks: e10s
Has STR: --- → yes
Blocks: e10s-select
User Agent 	Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
Build ID 	20160207004019

Tested on Windows 7 x64 with the Aurora 46.0a2 build. With e10s enabled, I can sometimes reproduce the problem. With e10s disabled, the issue does not reproduce.
Priority: -- → P1
Whiteboard: e10st?
The issue here is in the NS_THEME_MENULIST_BUTTON block of nsNativeThemeWin::GetThemePartAndState

IsDroppedDown() is called but will never return true in e10s since we don't set the flag used by it.

The code here inside the IsVistaOrLater() block is a little odd in that it doesn't handle the non-open case and just falls through. In non-e10s you can see odd behaviour if you hold the mouse on the drop marker, then press escape, then move the mouse slightly -- the active state only appears then and no other time. So I don't think this code is correct as is anyway, but we probably will still need an IsDroppedDown method that returns the correct state.
Oops, that comment was meant for bug 1253979.

The comment for this bug is:

The non-e10s is case toggles the list open state within nsListControlFrame::MouseDown, however e10s only opens it. So might be able to fix this by using a message which toggles the state rather than only opens it.
This is a Windows-only bug. On Mac and Linux, the 2nd click in a double click is handled like a single click and short-circuit to nsXULPopupManager::Rollup() from nsWindow::CheckForRollup() (Linux) and [ChildView maybeRollup] (Mac). I guess we can do likewise in nsWIndow::DealWithPopups().
Attachment #8772361 - Flags: feedback?(enndeakin)
Comment on attachment 8772361 [details] [diff] [review]

This will cause all popups to rollup on double-click which we don't want to do in general.
Attachment #8772361 - Flags: feedback?(enndeakin) → feedback-
Assignee: nobody → enndeakin
You'll need 1159301 if you want to apply the test part of the patch.
Attachment #8774826 - Flags: review?(mrbkap)
Blocks: 1253979
Attachment #8774826 - Flags: review?(mrbkap) → review+
Bug 1194027, add a flag to select elements to indicate if the parent process has the popup open, r=mrbkap
Closed: 9 years ago8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
Blocks: 1289528
I didn't include the test for this patch as it was failing intermittently on Windows.
See Also: → 1327149
You need to log in before you can comment on or make changes to this bug.