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

Side by Side Diff: chrome/browser/resources/shared/js/cr/ui/bubble.js

Issue 8565014: NTP4: Remove native focus emulation for bubbles when explictly told to. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/resources/ntp4/new_tab.js ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // require: event_tracker.js 5 // require: event_tracker.js
6 6
7 cr.define('cr.ui', function() { 7 cr.define('cr.ui', function() {
8 8
9 // The arrow location specifies how the arrow and bubble are positioned in 9 // The arrow location specifies how the arrow and bubble are positioned in
10 // relation to the anchor node. 10 // relation to the anchor node.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 /** 84 /**
85 * Handles close event which is triggered when the close button 85 * Handles close event which is triggered when the close button
86 * is clicked. By default is set to this.hide. 86 * is clicked. By default is set to this.hide.
87 * @param {function} A function with no parameters 87 * @param {function} A function with no parameters
88 */ 88 */
89 set handleCloseEvent(func) { 89 set handleCloseEvent(func) {
90 this.handleCloseEvent_ = func; 90 this.handleCloseEvent_ = func;
91 }, 91 },
92 92
93 captureFocus_: true,
Evan Stade 2011/11/14 19:20:52 meh, you can probably just assume this should alwa
Dan Beam 2011/11/15 04:15:10 Done.
94
95 /**
96 * Tells the bubble whether it should attempt to capture focus like native
97 * dialog UI (i.e. wrench menu).
98 * @param {boolean} capture Whether or not to capture focus.
99 */
100 set captureFocus(capture) {
101 this.captureFocus_ = !!capture;
102 },
103
93 /** 104 /**
94 * Sets the anchor node, i.e. the node that this bubble points at. 105 * Sets the anchor node, i.e. the node that this bubble points at.
95 * @param {HTMLElement} node The new anchor node. 106 * @param {HTMLElement} node The new anchor node.
96 */ 107 */
97 set anchorNode(node) { 108 set anchorNode(node) {
98 this.anchorNode_ = node; 109 this.anchorNode_ = node;
99 110
100 if (!this.hidden) 111 if (!this.hidden)
101 this.reposition(); 112 this.reposition();
102 }, 113 },
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 anchorMid - ARROW_OFFSET_X; 177 anchorMid - ARROW_OFFSET_X;
167 } 178 }
168 var top = this.isTop_ ? clientRect.bottom + ARROW_OFFSET_Y : 179 var top = this.isTop_ ? clientRect.bottom + ARROW_OFFSET_Y :
169 clientRect.top - this.clientHeight - ARROW_OFFSET_Y; 180 clientRect.top - this.clientHeight - ARROW_OFFSET_Y;
170 181
171 this.style.left = left + 'px'; 182 this.style.left = left + 'px';
172 this.style.top = top + 'px'; 183 this.style.top = top + 'px';
173 }, 184 },
174 185
175 /** 186 /**
176 * Starts showing the bubble. The bubble will grab input and show until the 187 * Starts showing the bubble. The bubble will grab input and show until the
Evan Stade 2011/11/14 19:20:52 also remove the "grab input" part of this comment
Dan Beam 2011/11/15 04:15:10 Done.
177 * user clicks away. 188 * user clicks away.
178 */ 189 */
179 show: function() { 190 show: function() {
180 if (!this.hidden) 191 if (!this.hidden)
181 return; 192 return;
182 193
183 document.body.appendChild(this); 194 document.body.appendChild(this);
184 this.hidden = false; 195 this.hidden = false;
185 this.reposition(); 196 this.reposition();
186 this.showTime_ = Date.now(); 197 this.showTime_ = Date.now();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 } else if (!this.contains(e.target)) { 231 } else if (!this.contains(e.target)) {
221 if (Date.now() - this.showTime_ < this.deactivateToDismissDelay_) 232 if (Date.now() - this.showTime_ < this.deactivateToDismissDelay_)
222 return; 233 return;
223 this.hide(); 234 this.hide();
224 } else { 235 } else {
225 return; 236 return;
226 } 237 }
227 break; 238 break;
228 } 239 }
229 240
230 e.stopPropagation(); 241 if (this.captureFocus_) {
231 e.preventDefault(); 242 e.stopPropagation();
243 e.preventDefault();
244 }
245
232 return; 246 return;
233 }, 247 },
234 }; 248 };
235 249
236 return { 250 return {
237 ArrowLocation : ArrowLocation, 251 ArrowLocation : ArrowLocation,
238 Bubble : Bubble, 252 Bubble : Bubble,
239 BubbleAlignment : BubbleAlignment 253 BubbleAlignment : BubbleAlignment
240 }; 254 };
241 }); 255 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/ntp4/new_tab.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698