diff --git a/src/vs/editor/contrib/find/browser/findWidget.ts b/src/vs/editor/contrib/find/browser/findWidget.ts index 4b9ad2f2d2a6c977c80cd5950dcdf4eda1e8d974..a686184d8cd0d4039cdfc696fb13bd0f1d9c62f1 100644 --- a/src/vs/editor/contrib/find/browser/findWidget.ts +++ b/src/vs/editor/contrib/find/browser/findWidget.ts @@ -95,6 +95,20 @@ export class FindWidget extends Widget implements EditorBrowser.IOverlayWidget { this.focusTracker = this._register(DomUtils.trackFocus(this._findInput.inputBox.inputElement)); this.focusTracker.addFocusListener(() => this._reseedFindScope()); + let updateCanReplace = () => { + let canReplace = !this._codeEditor.getConfiguration().readOnly; + DomUtils.toggleClass(this._domNode, 'can-replace', canReplace); + if (!canReplace) { + this._state.change({ isReplaceRevealed: false }, false); + } + }; + this._register(this._codeEditor.addListener2(EditorCommon.EventType.ConfigurationChanged, (e:EditorCommon.IConfigurationChangedEvent) => { + if (e.readOnly) { + updateCanReplace(); + } + })); + updateCanReplace(); + this._codeEditor.addOverlayWidget(this); } @@ -513,10 +527,6 @@ export class FindWidget extends Widget implements EditorBrowser.IOverlayWidget { this._domNode.className = 'editor-widget find-widget'; this._domNode.setAttribute('aria-hidden', 'false'); - if (!this._codeEditor.getConfiguration().readOnly) { - DomUtils.addClass(this._domNode, 'can-replace'); - } - this._domNode.appendChild(this._toggleReplaceBtn.domNode); this._domNode.appendChild(findPart); this._domNode.appendChild(replacePart);