Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/sources/JavaScriptSourceFrame.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptSourceFrame.js b/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptSourceFrame.js |
| index 84f38c1938304b22cf03861f0ab5b3deaddbc198..d3137327451d6adb33e84ce1a4feabde9b16ca8b 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptSourceFrame.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/sources/JavaScriptSourceFrame.js |
| @@ -55,6 +55,7 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| this.textEditor.element.addEventListener('keyup', this._onKeyUp.bind(this), true); |
| this.textEditor.element.addEventListener('mousemove', this._onMouseMove.bind(this), false); |
| this.textEditor.element.addEventListener('mousedown', this._onMouseDown.bind(this), true); |
| + this.textEditor.element.addEventListener('focusout', this._onBlur.bind(this), false); |
| if (Runtime.experiments.isEnabled('continueToLocationMarkers')) { |
| this.textEditor.element.addEventListener('wheel', event => { |
| if (UI.KeyboardShortcut.eventHasCtrlOrMeta(event)) |
| @@ -485,6 +486,9 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| * @param {!KeyboardEvent} event |
| */ |
| _onKeyDown(event) { |
| + this._controlDown = false; |
| + this._clearContinueToLocations(); |
|
dgozman
2017/04/29 00:36:56
So this rebuilds inline values on every key stroke
|
| + |
| if (event.key === 'Escape') { |
| if (this._popoverHelper.isPopoverVisible()) { |
| this._popoverHelper.hidePopover(); |
| @@ -492,9 +496,15 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| } |
| return; |
| } |
| + |
| if (UI.KeyboardShortcut.eventHasCtrlOrMeta(event) && this._executionLocation) { |
| - if (!this._continueToLocationDecorations) |
| - this._showContinueToLocations(); |
| + this._controlDown = true; |
| + if (event.key === 'Control') { |
|
dgozman
2017/04/29 00:36:56
or meta
|
| + setTimeout(() => { |
| + if (this._executionLocation && this._controlDown) |
| + this._showContinueToLocations(); |
| + }, 150); |
| + } |
| } |
| } |
| @@ -502,7 +512,7 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| * @param {!MouseEvent} event |
| */ |
| _onMouseMove(event) { |
| - if (this._executionLocation && UI.KeyboardShortcut.eventHasCtrlOrMeta(event)) { |
| + if (this._executionLocation && this._controlDown && UI.KeyboardShortcut.eventHasCtrlOrMeta(event)) { |
| if (!this._continueToLocationDecorations) |
| this._showContinueToLocations(); |
| } |
| @@ -532,11 +542,18 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| } |
| /** |
| + * @param {!Event} event |
| + */ |
| + _onBlur(event) { |
| + this._clearContinueToLocations(); |
| + this._controlDown = this._controlDown && this.textEditor.element.isAncestor(event.target); |
| + } |
| + |
| + /** |
| * @param {!KeyboardEvent} event |
| */ |
| _onKeyUp(event) { |
| - if (UI.KeyboardShortcut.eventHasCtrlOrMeta(event)) |
| - return; |
| + this._controlDown = false; |
| this._clearContinueToLocations(); |
| } |
| @@ -601,10 +618,11 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| if (this.isShowing()) { |
| // We need SourcesTextEditor to be initialized prior to this call. @see crbug.com/506566 |
| setImmediate(() => { |
| - this._generateValuesInSource(); |
| - if (Runtime.experiments.isEnabled('continueToLocationMarkers')) { |
| - if (this._continueToLocationDecorations) |
| + if (this._controlDown) { |
| + if (Runtime.experiments.isEnabled('continueToLocationMarkers')) |
| this._showContinueToLocations(); |
| + } else { |
| + this._generateValuesInSource(); |
| } |
| }); |
| } |
| @@ -660,6 +678,8 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| */ |
| function renderLocations(locations) { |
| this._clearContinueToLocations(); |
| + this.textEditor.hideExecutionLineBackground(); |
| + this._clearValueWidgets(); |
| this._continueToLocationDecorations = new Map(); |
| for (var location of locations) { |
| var lineNumber = location.lineNumber; |
| @@ -841,12 +861,14 @@ Sources.JavaScriptSourceFrame = class extends SourceFrame.UISourceCodeFrame { |
| } |
| _clearContinueToLocations() { |
| + this.textEditor.showExecutionLineBackground(); |
| + this._generateValuesInSource(); |
| if (!this._continueToLocationDecorations) |
| return; |
| this.textEditor.operation(() => { |
| for (var decoration of this._continueToLocationDecorations.keys()) |
| this.textEditor.removeHighlight(decoration); |
| - delete this._continueToLocationDecorations; |
| + this._continueToLocationDecorations = null; |
| }); |
| } |