| 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 befaad8d52efce0f7c391af2065f990388d2be57..17af4583e5a47c35370cc7650de9cc3cb0bd5990 100644
|
| --- a/chrome/browser/resources/settings/device_page/display.js
|
| +++ b/chrome/browser/resources/settings/device_page/display.js
|
| @@ -5,8 +5,6 @@
|
| /**
|
| * @fileoverview
|
| * 'settings-display' is the settings subpage for display settings.
|
| - *
|
| - * @group Chrome Settings Elements
|
| */
|
|
|
| cr.define('settings.display', function() {
|
| @@ -32,6 +30,12 @@ Polymer({
|
| displays: Array,
|
|
|
| /**
|
| + * Array of display layouts.
|
| + * @type {!Array<!chrome.system.display.DisplayLayout>}
|
| + */
|
| + layouts: Array,
|
| +
|
| + /**
|
| * String listing the ids in displays. Used to observe changes to the
|
| * display configuration (i.e. when a display is added or removed).
|
| */
|
| @@ -106,7 +110,29 @@ Polymer({
|
| /** @private */
|
| getDisplayInfo_: function() {
|
| settings.display.systemDisplayApi.getInfo(
|
| - this.updateDisplayInfo_.bind(this));
|
| + this.displayInfoFetched_.bind(this));
|
| + },
|
| +
|
| + /**
|
| + * @param {!Array<!chrome.system.display.DisplayUnitInfo>} displays
|
| + * @private
|
| + */
|
| + displayInfoFetched_(displays) {
|
| + if (!displays.length)
|
| + return;
|
| + settings.display.systemDisplayApi.getDisplayLayout(
|
| + this.displayLayoutFetched_.bind(this, displays));
|
| + },
|
| +
|
| + /**
|
| + * @param {!Array<!chrome.system.display.DisplayUnitInfo>} displays
|
| + * @param {!Array<!chrome.system.display.DisplayLayout>} layouts
|
| + * @private
|
| + */
|
| + displayLayoutFetched_(displays, layouts) {
|
| + this.layouts = layouts;
|
| + this.displays = displays;
|
| + this.updateDisplayInfo_();
|
| },
|
|
|
| /**
|
| @@ -207,11 +233,15 @@ Polymer({
|
| },
|
|
|
| /**
|
| - * @param {!{model: !{index: number}, target: !PaperButtonElement}} e
|
| + * @param {!{detail: number}} e
|
| * @private
|
| */
|
| - onSelectDisplayTap_: function(e) {
|
| - this.selectedDisplay = this.displays[e.model.index];
|
| + onSelectDisplay_: function(e) {
|
| + var index = e.detail;
|
| + assert(index >= 0);
|
| + if (index >= this.displays.length)
|
| + return;
|
| + this.selectedDisplay = this.displays[e.detail];
|
| // Force active in case selected display was clicked.
|
| e.target.active = true;
|
| },
|
| @@ -289,12 +319,8 @@ Polymer({
|
| this.showOverscanDialog_(true);
|
| },
|
|
|
| - /**
|
| - * @param {!Array<!chrome.system.display.DisplayUnitInfo>} displays
|
| - * @private
|
| - */
|
| - updateDisplayInfo_(displays) {
|
| - this.displays = displays;
|
| + /** @private */
|
| + updateDisplayInfo_() {
|
| var displayIds = '';
|
| var primaryDisplay = undefined;
|
| var selectedDisplay = undefined;
|
| @@ -311,6 +337,7 @@ Polymer({
|
| this.primaryDisplayId = (primaryDisplay && primaryDisplay.id) || '';
|
| this.selectedDisplay = selectedDisplay || primaryDisplay ||
|
| (this.displays && this.displays[0]);
|
| + this.$.displayLayout.updateDisplays(this.displays, this.layouts);
|
| },
|
|
|
| /** @private */
|
|
|