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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/console/ConsoleView.js

Issue 2840663002: DevTools: clicking in console messages should not jump to bottom (Closed)
Patch Set: test Created 3 years, 7 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
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/console/console-focus-expected.txt ('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 /* 1 /*
2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2009 Joseph Pecoraro 3 * Copyright (C) 2009 Joseph Pecoraro
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 if (!this._showSettingsPaneSetting.get()) 108 if (!this._showSettingsPaneSetting.get())
109 settingsPane.element.classList.add('hidden'); 109 settingsPane.element.classList.add('hidden');
110 this._showSettingsPaneSetting.addChangeListener( 110 this._showSettingsPaneSetting.addChangeListener(
111 () => settingsPane.element.classList.toggle('hidden', !this._showSetting sPaneSetting.get())); 111 () => settingsPane.element.classList.toggle('hidden', !this._showSetting sPaneSetting.get()));
112 112
113 this._viewport = new Console.ConsoleViewport(this); 113 this._viewport = new Console.ConsoleViewport(this);
114 this._viewport.setStickToBottom(true); 114 this._viewport.setStickToBottom(true);
115 this._viewport.contentElement().classList.add('console-group', 'console-grou p-messages'); 115 this._viewport.contentElement().classList.add('console-group', 'console-grou p-messages');
116 this._contentsElement.appendChild(this._viewport.element); 116 this._contentsElement.appendChild(this._viewport.element);
117 this._messagesElement = this._viewport.element; 117 this._messagesElement = this._viewport.element;
118 this._messagesElement.tabIndex = -1;
luoe 2017/04/24 22:28:33 Currently on ToT, using up/down/pageup/pagedown ke
118 this._messagesElement.id = 'console-messages'; 119 this._messagesElement.id = 'console-messages';
119 this._messagesElement.classList.add('monospace'); 120 this._messagesElement.classList.add('monospace');
120 this._messagesElement.addEventListener('click', this._messagesClicked.bind(t his), true); 121 this._messagesElement.addEventListener('click', this._messagesClicked.bind(t his), true);
121 122
122 this._viewportThrottler = new Common.Throttler(50); 123 this._viewportThrottler = new Common.Throttler(50);
123 124
124 this._topGroup = Console.ConsoleGroup.createTopGroup(); 125 this._topGroup = Console.ConsoleGroup.createTopGroup();
125 this._currentGroup = this._topGroup; 126 this._currentGroup = this._topGroup;
126 127
127 this._promptElement = this._messagesElement.createChild('div', 'source-code' ); 128 this._promptElement = this._messagesElement.createChild('div', 'source-code' );
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
302 wasShown() { 303 wasShown() {
303 this._viewport.refresh(); 304 this._viewport.refresh();
304 } 305 }
305 306
306 /** 307 /**
307 * @override 308 * @override
308 */ 309 */
309 focus() { 310 focus() {
310 if (this._prompt.hasFocus()) 311 if (this._prompt.hasFocus())
311 return; 312 return;
312 // Set caret position before setting focus in order to avoid scrolling
313 // by focus().
luoe 2017/04/24 22:28:33 This is no longer the case. Calling moveCaretToEn
314 this._prompt.moveCaretToEndOfPrompt(); 313 this._prompt.moveCaretToEndOfPrompt();
315 this._prompt.focus(); 314 this._prompt.focus();
316 } 315 }
317 316
318 /** 317 /**
319 * @override 318 * @override
320 */ 319 */
321 restoreScrollPositions() { 320 restoreScrollPositions() {
322 if (this._viewport.stickToBottom()) 321 if (this._viewport.stickToBottom())
323 this._immediatelyScrollToBottom(); 322 this._immediatelyScrollToBottom();
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 this._updateFilterStatus(); 658 this._updateFilterStatus();
660 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.length) ; 659 this._searchableView.updateSearchMatchesCount(this._regexMatchRanges.length) ;
661 this._viewport.invalidate(); 660 this._viewport.invalidate();
662 } 661 }
663 662
664 /** 663 /**
665 * @param {!Event} event 664 * @param {!Event} event
666 */ 665 */
667 _messagesClicked(event) { 666 _messagesClicked(event) {
668 var targetElement = event.deepElementFromPoint(); 667 var targetElement = event.deepElementFromPoint();
669 if (!targetElement || targetElement.isComponentSelectionCollapsed()) 668 if (!targetElement || this._viewport.element.isScrolledToBottom())
670 this.focus(); 669 this.focus();
luoe 2017/04/24 22:28:33 I think we still need to keep 2 paths. When you c
670 else if (targetElement.isComponentSelectionCollapsed())
671 this._prompt.focus();
672
671 var groupMessage = event.target.enclosingNodeOrSelfWithClass('console-group- title'); 673 var groupMessage = event.target.enclosingNodeOrSelfWithClass('console-group- title');
672 if (!groupMessage) 674 if (!groupMessage)
673 return; 675 return;
674 var consoleGroupViewMessage = groupMessage.parentElement.message; 676 var consoleGroupViewMessage = groupMessage.parentElement.message;
675 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed()); 677 consoleGroupViewMessage.setCollapsed(!consoleGroupViewMessage.collapsed());
676 this._updateMessageList(); 678 this._updateMessageList();
677 } 679 }
678 680
679 _registerShortcuts() { 681 _registerShortcuts() {
680 this._shortcuts = {}; 682 this._shortcuts = {};
(...skipping 591 matching lines...) Expand 10 before | Expand all | Expand 10 after
1272 return true; 1274 return true;
1273 } 1275 }
1274 return false; 1276 return false;
1275 } 1277 }
1276 }; 1278 };
1277 1279
1278 /** 1280 /**
1279 * @typedef {{messageIndex: number, matchIndex: number}} 1281 * @typedef {{messageIndex: number, matchIndex: number}}
1280 */ 1282 */
1281 Console.ConsoleView.RegexMatchRange; 1283 Console.ConsoleView.RegexMatchRange;
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/inspector/console/console-focus-expected.txt ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698