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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/inline_editor/SwatchPopoverHelper.js

Issue 2740803002: [DevTools] Simplify Popover API (Closed)
Patch Set: addressed comments Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @unrestricted 5 * @unrestricted
6 */ 6 */
7 InlineEditor.SwatchPopoverHelper = class extends Common.Object { 7 InlineEditor.SwatchPopoverHelper = class extends Common.Object {
8 constructor() { 8 constructor() {
9 super(); 9 super();
10 this._popover = new UI.Popover(); 10 this._popover = new UI.GlassPane();
11 this._popover.setNoPadding(true); 11 this._popover.registerRequiredCSS('inline_editor/swatchPopover.css');
12 this._popover.setBlockPointerEvents(false);
13 this._popover.setSizeBehavior(UI.GlassPane.SizeBehavior.MeasureContent);
14 this._popover.setShowArrow(true);
12 this._popover.element.addEventListener('mousedown', e => e.consume(), false) ; 15 this._popover.element.addEventListener('mousedown', e => e.consume(), false) ;
13 16
14 this._hideProxy = this.hide.bind(this, true); 17 this._hideProxy = this.hide.bind(this, true);
15 this._boundOnKeyDown = this._onKeyDown.bind(this); 18 this._boundOnKeyDown = this._onKeyDown.bind(this);
16 this._boundFocusOut = this._onFocusOut.bind(this); 19 this._boundFocusOut = this._onFocusOut.bind(this);
17 this._isHidden = true; 20 this._isHidden = true;
18 } 21 }
19 22
20 /** 23 /**
21 * @param {!Event} event 24 * @param {!Event} event
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 this.reposition(); 57 this.reposition();
55 view.focus(); 58 view.focus();
56 59
57 var document = this._popover.element.ownerDocument; 60 var document = this._popover.element.ownerDocument;
58 document.addEventListener('mousedown', this._hideProxy, false); 61 document.addEventListener('mousedown', this._hideProxy, false);
59 document.defaultView.addEventListener('resize', this._hideProxy, false); 62 document.defaultView.addEventListener('resize', this._hideProxy, false);
60 this._view.contentElement.addEventListener('keydown', this._boundOnKeyDown, false); 63 this._view.contentElement.addEventListener('keydown', this._boundOnKeyDown, false);
61 } 64 }
62 65
63 reposition() { 66 reposition() {
64 // Unbind "blur" listener to avoid reenterability: |popover.showView| will h ide the popover and trigger it synchronously. 67 // Unbind "blur" listener to avoid reenterability: |popover.show()| will hid e the popover and trigger it synchronously.
65 this._view.contentElement.removeEventListener('focusout', this._boundFocusOu t, false); 68 this._view.contentElement.removeEventListener('focusout', this._boundFocusOu t, false);
66 this._popover.showView(this._view, this._anchorElement); 69 this._view.show(this._popover.contentElement);
70 this._popover.setContentAnchorBox(this._anchorElement.boxInWindow());
71 this._popover.show(this._anchorElement.ownerDocument);
67 this._view.contentElement.addEventListener('focusout', this._boundFocusOut, false); 72 this._view.contentElement.addEventListener('focusout', this._boundFocusOut, false);
68 if (!this._focusRestorer) 73 if (!this._focusRestorer)
69 this._focusRestorer = new UI.WidgetFocusRestorer(this._view); 74 this._focusRestorer = new UI.WidgetFocusRestorer(this._view);
70 } 75 }
71 76
72 /** 77 /**
73 * @param {boolean=} commitEdit 78 * @param {boolean=} commitEdit
74 */ 79 */
75 hide(commitEdit) { 80 hide(commitEdit) {
76 if (this._isHidden) 81 if (this._isHidden)
(...skipping 26 matching lines...) Expand all
103 this.hide(true); 108 this.hide(true);
104 event.consume(true); 109 event.consume(true);
105 return; 110 return;
106 } 111 }
107 if (event.key === 'Escape') { 112 if (event.key === 'Escape') {
108 this.hide(false); 113 this.hide(false);
109 event.consume(true); 114 event.consume(true);
110 } 115 }
111 } 116 }
112 }; 117 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698