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

Side by Side Diff: chrome/browser/resources/ntp4/apps_page.js

Issue 1431103003: Chrome Apps Page: Fixed issue with app focusing and context. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 cr.define('ntp', function() { 5 cr.define('ntp', function() {
6 'use strict'; 6 'use strict';
7 7
8 var APP_LAUNCH = { 8 var APP_LAUNCH = {
9 // The histogram buckets (keep in sync with extension_constants.h). 9 // The histogram buckets (keep in sync with extension_constants.h).
10 NTP_APPS_MAXIMIZED: 0, 10 NTP_APPS_MAXIMIZED: 0,
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 return self.contextMenu; 288 return self.contextMenu;
289 }); 289 });
290 290
291 if (!this.appData_.kioskMode) { 291 if (!this.appData_.kioskMode) {
292 this.appContents_.addEventListener('contextmenu', 292 this.appContents_.addEventListener('contextmenu',
293 cr.ui.contextMenuHandler); 293 cr.ui.contextMenuHandler);
294 } 294 }
295 295
296 this.addEventListener('mousedown', this.onMousedown_, true); 296 this.addEventListener('mousedown', this.onMousedown_, true);
297 this.addEventListener('keydown', this.onKeydown_); 297 this.addEventListener('keydown', this.onKeydown_);
298 this.addEventListener('keyup', this.onKeyup_); 298 this.addEventListener('blur', this.onBlur_);
299 }, 299 },
300 300
301 /** 301 /**
302 * Sets the color of the favicon dominant color bar. 302 * Sets the color of the favicon dominant color bar.
303 * @param {string} color The css-parsable value for the color. 303 * @param {string} color The css-parsable value for the color.
304 */ 304 */
305 set stripeColor(color) { 305 set stripeColor(color) {
306 this.querySelector('.color-stripe').style.backgroundColor = color; 306 this.querySelector('.color-stripe').style.backgroundColor = color;
307 }, 307 },
308 308
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 this.imgDiv_.style.marginTop = this.imgDiv_.style.marginBottom = 371 this.imgDiv_.style.marginTop = this.imgDiv_.style.marginBottom =
372 toCssPx((imgSize - iconSize) / 2); 372 toCssPx((imgSize - iconSize) / 2);
373 } 373 }
374 374
375 this.style.width = this.style.height = toCssPx(size); 375 this.style.width = this.style.height = toCssPx(size);
376 this.style.left = toCssPx(x); 376 this.style.left = toCssPx(x);
377 this.style.right = toCssPx(x); 377 this.style.right = toCssPx(x);
378 this.style.top = toCssPx(y); 378 this.style.top = toCssPx(y);
379 }, 379 },
380 380
381 onBlur_: function(e) {
382 this.classList.remove('click-focus');
383 this.appContents_.classList.remove('suppress-active');
384 },
385
381 /** 386 /**
382 * Invoked when an app is clicked. 387 * Invoked when an app is clicked.
383 * @param {Event} e The click event. 388 * @param {Event} e The click event.
384 * @private 389 * @private
385 */ 390 */
386 onClick_: function(e) { 391 onClick_: function(e) {
387 var url = !this.appData_.is_webstore ? '' : 392 var url = !this.appData_.is_webstore ? '' :
388 appendParam(this.appData_.url, 393 appendParam(this.appData_.url,
389 'utm_source', 394 'utm_source',
390 'chrome-ntp-icon'); 395 'chrome-ntp-icon');
(...skipping 12 matching lines...) Expand all
403 * @private 408 * @private
404 */ 409 */
405 onKeydown_: function(e) { 410 onKeydown_: function(e) {
406 if (e.keyIdentifier == 'Enter') { 411 if (e.keyIdentifier == 'Enter') {
407 chrome.send('launchApp', 412 chrome.send('launchApp',
408 [this.appId, APP_LAUNCH.NTP_APPS_MAXIMIZED, '', 413 [this.appId, APP_LAUNCH.NTP_APPS_MAXIMIZED, '',
409 0, e.altKey, e.ctrlKey, e.metaKey, e.shiftKey]); 414 0, e.altKey, e.ctrlKey, e.metaKey, e.shiftKey]);
410 e.preventDefault(); 415 e.preventDefault();
411 e.stopPropagation(); 416 e.stopPropagation();
412 } 417 }
413 this.onKeyboardUsed_(e.keyCode);
414 },
415
416 /**
417 * Invoked when the user releases a key while the app is focused.
418 * @param {Event} e The key event.
419 * @private
420 */
421 onKeyup_: function(e) {
422 this.onKeyboardUsed_(e.keyCode);
423 },
424
425 /**
426 * Called when the keyboard has been used (key down or up). The .click-focus
427 * hack is removed if the user presses a key that can change focus.
428 * @param {number} keyCode The key code of the keyboard event.
429 * @private
430 */
431 onKeyboardUsed_: function(keyCode) {
432 switch (keyCode) {
433 case 9: // Tab.
434 case 37: // Left arrow.
435 case 38: // Up arrow.
436 case 39: // Right arrow.
437 case 40: // Down arrow.
438 this.classList.remove('click-focus');
439 }
440 }, 418 },
441 419
442 /** 420 /**
443 * Adds a node to the list of targets that will launch the app. This list 421 * Adds a node to the list of targets that will launch the app. This list
444 * is also used in onMousedown to determine whether the app contents should 422 * is also used in onMousedown to determine whether the app contents should
445 * be shown as active (if we don't do this, then clicking anywhere in 423 * be shown as active (if we don't do this, then clicking anywhere in
446 * appContents, even a part that is outside the ideally clickable region, 424 * appContents, even a part that is outside the ideally clickable region,
447 * will cause the app icon to look active). 425 * will cause the app icon to look active).
448 * @param {HTMLElement} node The node that should be clickable. 426 * @param {HTMLElement} node The node that should be clickable.
449 */ 427 */
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
787 function launchAppAfterEnable(appId) { 765 function launchAppAfterEnable(appId) {
788 chrome.send('launchApp', [appId, APP_LAUNCH.NTP_APP_RE_ENABLE]); 766 chrome.send('launchApp', [appId, APP_LAUNCH.NTP_APP_RE_ENABLE]);
789 } 767 }
790 768
791 return { 769 return {
792 APP_LAUNCH: APP_LAUNCH, 770 APP_LAUNCH: APP_LAUNCH,
793 AppsPage: AppsPage, 771 AppsPage: AppsPage,
794 launchAppAfterEnable: launchAppAfterEnable, 772 launchAppAfterEnable: launchAppAfterEnable,
795 }; 773 };
796 }); 774 });
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/ntp4/tile_page.js » ('j') | chrome/browser/resources/ntp4/tile_page.js » ('J')

Powered by Google App Engine
This is Rietveld 408576698