diff --git a/src/ExpandablePicker/ExpandablePicker.js b/src/ExpandablePicker/ExpandablePicker.js index b60f1ce24..62a954469 100644 --- a/src/ExpandablePicker/ExpandablePicker.js +++ b/src/ExpandablePicker/ExpandablePicker.js @@ -247,11 +247,6 @@ module.exports = kind( this.selectedIndexChanged(); this.helpTextChanged(); this.createChrome(this.tools); - - var controls = this.getCheckboxControls(); - for (var i=0; i < controls.length; i++) { - if (controls[i].initSelected) controls[i].initSelected(); - } }, /** diff --git a/src/RadioItem/RadioItem.js b/src/RadioItem/RadioItem.js index 9f74f6d86..0959a7e0f 100644 --- a/src/RadioItem/RadioItem.js +++ b/src/RadioItem/RadioItem.js @@ -51,6 +51,9 @@ module.exports = kind( SelectableItem.prototype.create.apply(this, arguments); this.removeClass('moon-selectable-item'); this.addClass('moon-radio-item'); + if (this.active) { + this.activeChanged(); + } }, /** @@ -60,9 +63,5 @@ module.exports = kind( decorateActivateEvent: function (sender, ev) { ev.toggledControl = this; ev.checked = this.selected; - }, - - initSelected: function() { - if (this.active) this.setSelected(this.active); } }); diff --git a/src/SelectableItem/SelectableItem.js b/src/SelectableItem/SelectableItem.js index 1fdfaa328..a61924886 100644 --- a/src/SelectableItem/SelectableItem.js +++ b/src/SelectableItem/SelectableItem.js @@ -47,19 +47,19 @@ module.exports = kind( * @private */ kind: Item, - + /** * @private */ classes: 'moon-selectable-item', - + /** * @private */ events: { onActivate: '' }, - + /** * @private */ @@ -95,7 +95,7 @@ module.exports = kind( * @public */ active: false, - + /** * If used as the base control within a {@link module:moonstone/DataList~DataList} or {@glossary subkind}, * this should be set to `false` so that selection support can be synchronized to the @@ -107,7 +107,7 @@ module.exports = kind( */ handleTapEvent: true }, - + /** * @method * @private @@ -140,7 +140,7 @@ module.exports = kind( if (this.disabled) { return true; } - if (this.handleTapEvent) { + if (this.handleTapEvent && !(this.selected && this.active)) { this.setActive(!this.getActive()); this.bubble('onchange'); } @@ -185,7 +185,9 @@ module.exports = kind( this.active = utils.isTrue(this.active); this.setSelected(this.active); this.resetMarquee(); - this.bubble('onActivate'); + if (this.active) { + this.bubble('onActivate'); + } }, // Accessibility