Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: chrome/browser/resources/settings/device_page/display.js

Issue 2084673003: MD Settings: Add display layout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_547080_display_settings6
Patch Set: Nit Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 */

Powered by Google App Engine
This is Rietveld 408576698