Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#18047 closed defect (fixed)

dojox/mobile/ComboBox: sometimes an item remains open after closing the dropdown on Chrome/Nexus5/Android4.4.2

Reported by: Adrian Vasiliu Owned by: Adrian Vasiliu <vasiliu@…>
Priority: undecided Milestone: 1.10
Component: DojoX Mobile Version: 1.10.0-beta1
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by Adrian Vasiliu)

With Chrome - at least with the latest version (35.0.1916.122) - on Nexus 5 Android 4.4.2, when closing the dropdown of dojox/mobile/ComboBox (by touching outside the dropdown or by selecting an item) the dropdown closes but one item remains open.

How to reproduce: load for instance dojox/mobile/tests/test_ComboBox.html (on Nexus 5) and touch for instance the last combo on the bottom. Then touch anywhere outside it: the dropdown closes but one item of the dropdown remains...

Reproducible with both Dojo 1.9.3 and 1.10b1.

So far this misbehavior has not been reproduced on other Android devices, for instance it does NOT hurt with either Chrome or stock browser on Galaxy Tab 3 10.1 Android 4.2.2.

Change History (4)

comment:1 Changed 5 years ago by Adrian Vasiliu <vasiliu@…>

Owner: set to Adrian Vasiliu <vasiliu@…>
Resolution: fixed
Status: newclosed

In 9e258ec9b04f636a43c52f7ee77e3af1e1a8579c/dojox:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:2 Changed 5 years ago by Adrian Vasiliu <vasiliu@…>

In aeea5f0f8f8d749283d164d89ba7a4d04af09b86/dojox:

Error: Processor CommitTicketReference failed
Unsupported version control system "git": Can't find an appropriate component, maybe the corresponding plugin was not enabled? 

comment:3 Changed 5 years ago by Adrian Vasiliu

Explanation about the above commit:

  • The issue is related with ComboBox?.openDropDown being called *after* ComboBox?.closeDropDown by the code in dijit/form/_SearchMixin which process events.
  • The deeper reason seems related with the numerous listeners in various layers of the sandwich of mixins used by the combo (dijit/form/_SearchMixin|_TextBoxMixin, and dojox/mobile/ComboBox itself), each deferred with a different delay (0, 1, 300, 500), and with the insufficient protection against opening the dropdown by side-effect of closing it (there is code for that, which is effective in many cases but not all).
  • The committed solution appears to work it around successfully and without producing regressions elsewhere.
  • A solution might make sense to be applied in dijit/form/_SearchMixin itself. However the workaround at the level of dojox/mobile/ComboBox appeared as a safer way to go for now (because by definition it has no impact outside dojox/mobile/ComboBox).

comment:4 Changed 5 years ago by Adrian Vasiliu

Description: modified (diff)
Milestone: tbd1.10
Note: See TracTickets for help on using tickets.