Index: chrome/browser/resources/settings/device_page/display.js |
diff --git a/chrome/browser/resources/settings/device_page/display.js b/chrome/browser/resources/settings/device_page/display.js |
index dfea430d003437f671566475dd4921a694bcb0f8..c4f5c214c6a10c143a2c5f67c5e888d236a27a41 100644 |
--- a/chrome/browser/resources/settings/device_page/display.js |
+++ b/chrome/browser/resources/settings/device_page/display.js |
@@ -24,6 +24,21 @@ Polymer({ |
properties: { |
/** |
+ * @type {!chrome.settingsPrivate.PrefObject} |
+ * @private |
+ */ |
+ selectedModePref_: { |
+ type: Object, |
+ value: function() { |
+ return { |
+ key: 'fakeDisplaySliderPref', |
+ type: chrome.settingsPrivate.PrefType.NUMBER, |
+ value: 0, |
+ }; |
+ }, |
+ }, |
+ |
+ /** |
* Array of displays. |
* @type {!Array<!chrome.system.display.DisplayUnitInfo>} |
*/ |
@@ -55,9 +70,6 @@ Polymer({ |
/** @private {!Array<number>} Mode index values for slider. */ |
modeValues_: Array, |
- |
- /** @private Selected mode index value for slider. */ |
- selectedModeIndex_: Number, |
}, |
/** @private {number} Selected mode index received from chrome. */ |
@@ -151,18 +163,20 @@ Polymer({ |
/** @private */ |
selectedDisplayChanged_: function() { |
- // Set |modeValues_| before |selectedModeIndex_| so that the slider updates |
- // correctly. |
+ // Set |modeValues_| before |selectedModePref_.value| so that the slider |
+ // updates correctly. |
var numModes = this.selectedDisplay.modes.length; |
if (numModes == 0) { |
this.modeValues_ = []; |
- this.selectedModeIndex_ = 0; |
+ this.set('selectedModePref_.value', 0); |
this.currentSelectedModeIndex_ = 0; |
return; |
} |
this.modeValues_ = Array.from(Array(numModes).keys()); |
- this.selectedModeIndex_ = this.getSelectedModeIndex_(this.selectedDisplay); |
- this.currentSelectedModeIndex_ = this.selectedModeIndex_; |
+ this.set('selectedModePref_.value', this.getSelectedModeIndex_( |
+ this.selectedDisplay)); |
+ this.currentSelectedModeIndex_ = |
+ /** @type {number} */ (this.selectedModePref_.value); |
}, |
/** |
@@ -204,7 +218,7 @@ Polymer({ |
* primary or extended. |
* @param {!chrome.system.display.DisplayUnitInfo} selectedDisplay |
* @param {string} primaryDisplayId |
- * @return {number} Retruns 0 if the display is primary else returns 1. |
+ * @return {number} Returns 0 if the display is primary else returns 1. |
* @private |
*/ |
getDisplaySelectMenuIndex_: function(selectedDisplay, primaryDisplayId) { |
@@ -269,12 +283,13 @@ Polymer({ |
if (this.selectedDisplay.modes.length == 0 || |
this.currentSelectedModeIndex_ == -1) { |
// If currentSelectedModeIndex_ == -1, selectedDisplay and |
- // selectedModeIndex_ are not in sync. |
+ // |selectedModePref_.value| are not in sync. |
return this.i18n( |
'displayResolutionText', this.selectedDisplay.bounds.width.toString(), |
this.selectedDisplay.bounds.height.toString()); |
} |
- var mode = this.selectedDisplay.modes[this.selectedModeIndex_]; |
+ var mode = this.selectedDisplay.modes[ |
+ /** @type {number} */(this.selectedModePref_.value)]; |
var best = |
this.selectedDisplay.isInternal ? mode.uiScale == 1.0 : mode.isNative; |
var widthStr = mode.width.toString(); |
@@ -298,8 +313,8 @@ Polymer({ |
continue; |
if (this.selectedDisplay != display) { |
// Set currentSelectedModeIndex_ to -1 so that getResolutionText_ does |
- // not flicker. selectedDisplayChanged will update selectedModeIndex_ |
- // and currentSelectedModeIndex_ correctly. |
+ // not flicker. selectedDisplayChanged will update |
+ // |selectedModePref_.value| and currentSelectedModeIndex_ correctly. |
this.currentSelectedModeIndex_ = -1; |
this.selectedDisplay = display; |
} |
@@ -355,13 +370,14 @@ Polymer({ |
*/ |
onSelectedModeChange_: function() { |
if (this.currentSelectedModeIndex_ == -1 || |
- this.currentSelectedModeIndex_ == this.selectedModeIndex_) { |
+ this.currentSelectedModeIndex_ == this.selectedModePref_.value) { |
// Don't change the selected display mode until we have received an update |
// from Chrome and the mode differs from the current mode. |
return; |
} |
/** @type {!chrome.system.display.DisplayProperties} */ var properties = { |
- displayMode: this.selectedDisplay.modes[this.selectedModeIndex_] |
+ displayMode: this.selectedDisplay.modes[ |
+ /** @type {number} */(this.selectedModePref_.value)] |
}; |
settings.display.systemDisplayApi.setDisplayProperties( |
this.selectedDisplay.id, properties, |