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

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: code review comments from estade@ 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 | « no previous file | 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 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 anchorMid - ARROW_OFFSET_X; 166 anchorMid - ARROW_OFFSET_X;
167 } 167 }
168 var top = this.isTop_ ? clientRect.bottom + ARROW_OFFSET_Y : 168 var top = this.isTop_ ? clientRect.bottom + ARROW_OFFSET_Y :
169 clientRect.top - this.clientHeight - ARROW_OFFSET_Y; 169 clientRect.top - this.clientHeight - ARROW_OFFSET_Y;
170 170
171 this.style.left = left + 'px'; 171 this.style.left = left + 'px';
172 this.style.top = top + 'px'; 172 this.style.top = top + 'px';
173 }, 173 },
174 174
175 /** 175 /**
176 * Starts showing the bubble. The bubble will grab input and show until the 176 * Starts showing the bubble. The bubble will show until the user clicks
177 * user clicks away. 177 * away or presses Escape.
178 */ 178 */
179 show: function() { 179 show: function() {
180 if (!this.hidden) 180 if (!this.hidden)
181 return; 181 return;
182 182
183 document.body.appendChild(this); 183 document.body.appendChild(this);
184 this.hidden = false; 184 this.hidden = false;
185 this.reposition(); 185 this.reposition();
186 this.showTime_ = Date.now(); 186 this.showTime_ = Date.now();
187 187
(...skipping 14 matching lines...) Expand all
202 this.parentNode.removeChild(this); 202 this.parentNode.removeChild(this);
203 }, 203 },
204 204
205 /** 205 /**
206 * Handles keydown and mousedown events, dismissing the bubble if 206 * Handles keydown and mousedown events, dismissing the bubble if
207 * necessary. 207 * necessary.
208 * @param {Event} e The event. 208 * @param {Event} e The event.
209 */ 209 */
210 handleEvent: function(e) { 210 handleEvent: function(e) {
211 switch (e.type) { 211 switch (e.type) {
212 case 'keydown': 212 case 'keydown': {
213 if (e.keyCode == 27) // Esc 213 if (e.keyCode == 27) // Esc
214 this.hide(); 214 this.hide();
215 break; 215 break;
216 216 }
217 case 'mousedown': 217 case 'mousedown': {
218 if (e.target == this.querySelector('.bubble-close')) { 218 if (e.target == this.querySelector('.bubble-close')) {
219 this.handleCloseEvent_(); 219 this.handleCloseEvent_();
220 } else if (!this.contains(e.target)) { 220 } else if (!this.contains(e.target)) {
221 if (Date.now() - this.showTime_ < this.deactivateToDismissDelay_) 221 if (Date.now() - this.showTime_ < this.deactivateToDismissDelay_)
222 return; 222 return;
223 this.hide(); 223 this.hide();
224 } else { 224 } else {
225 return; 225 return;
226 } 226 }
227 break; 227 break;
228 }
228 } 229 }
229
230 e.stopPropagation();
231 e.preventDefault();
232 return;
233 }, 230 },
234 }; 231 };
235 232
236 return { 233 return {
237 ArrowLocation : ArrowLocation, 234 ArrowLocation : ArrowLocation,
238 Bubble : Bubble, 235 Bubble : Bubble,
239 BubbleAlignment : BubbleAlignment 236 BubbleAlignment : BubbleAlignment
240 }; 237 };
241 }); 238 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698