Date: 2009-11-16 13:41:43 -0800 (Mon, 16 Nov 2009)
Fix bugs and regressions around List selection and drag and drop
1. DND caused regression in ctrl+click deselection because it prevented listeners for mouse up to be attached unless dragEnabled was true (SDK-24210).
2. ListBase check for commitSelection() relies on internal variables that are updated before calling itemSelected(). If the item selection at that point causes layout manager to validate properties before returning, the List will enter into a second commitSelection() while the first is mid-way through below on the stack. Net result is the selection is undone giving the illusion the item is not selected (SDK-24132, SDK-24105, SDK-24130).
1. Add listeners for mouse up when either DND is enabled, or there's pending selection on mouse up.
2. ListBase, commitSelection: commit internal variables state before calling itemSelected to prevent entering a second time into commitSelection.
QE notes: None
Doc notes: None
Bugs: SDK-24132, SDK-24105, SDK-24130, SDK-24210
Tests run: checkintests, mustella (gumbo/components)
Is noteworthy for integration: Yes