diff --git a/src/sql/base/browser/ui/table/media/slickColorTheme.css b/src/sql/base/browser/ui/table/media/slickColorTheme.css index 9054280b72..0387ba62ce 100644 --- a/src/sql/base/browser/ui/table/media/slickColorTheme.css +++ b/src/sql/base/browser/ui/table/media/slickColorTheme.css @@ -69,8 +69,8 @@ --color-grid-dirty-text: #101010; } /* grid styling */ -.vs .slickgridContainer .grid .slick-cell .active, -.vs slick-grid.active .grid .slick-cell .active { +.vs .slickgridContainer .grid .slick-cell.active, +.vs slick-grid.active .grid .slick-cell.active { border-color: var(--color-cell-border-active); } diff --git a/src/sql/workbench/contrib/editData/browser/editDataInput.ts b/src/sql/workbench/contrib/editData/browser/editDataInput.ts index 05d1c65446..012e22273c 100644 --- a/src/sql/workbench/contrib/editData/browser/editDataInput.ts +++ b/src/sql/workbench/contrib/editData/browser/editDataInput.ts @@ -57,9 +57,14 @@ export class EditDataInput extends EditorInput implements IConnectableInput { this._refreshButtonEnabled = false; this._useQueryFilter = false; - // re-emit sql editor events through this editor if it exists + // re-emit sql editor events through this editor if it exists. + // also set dirty status to false to prevent rerendering. if (this._sql) { - this._register(this._sql.onDidChangeDirty(() => this._onDidChangeDirty.fire())); + this._register(this._sql.onDidChangeDirty(async () => { + const model = await this._sql.resolve(); + model.setDirty(false); + this._onDidChangeDirty.fire(); + })); } //TODO determine is this is a table or a view diff --git a/src/sql/workbench/services/queryEditor/browser/queryEditorService.ts b/src/sql/workbench/services/queryEditor/browser/queryEditorService.ts index 9ebfbc7a85..33112d1ee4 100644 --- a/src/sql/workbench/services/queryEditor/browser/queryEditorService.ts +++ b/src/sql/workbench/services/queryEditor/browser/queryEditorService.ts @@ -87,16 +87,15 @@ export class QueryEditorService implements IQueryEditorService { let docUri: URI = URI.from({ scheme: Schemas.untitled, path: filePath }); // Create a sql document pane with accoutrements - const fileInput = this._untitledEditorService.create({ associatedResource: docUri, mode: 'sql' }); + const fileInput = this._untitledEditorService.create({ untitledResource: docUri, mode: 'sql' }); const m = await fileInput.resolve(); - if (sqlContent) { - m.textEditorModel.setValue(sqlContent); - } - // Create an EditDataInput for editing const resultsInput: EditDataResultsInput = this._instantiationService.createInstance(EditDataResultsInput, docUri.toString()); let editDataInput: EditDataInput = this._instantiationService.createInstance(EditDataInput, docUri, schemaName, tableName, fileInput, sqlContent, resultsInput); - + if (sqlContent) { + //Setting the value of the textEditorModel to sqlContent marks editor as dirty, editDataInput handles it. + m.textEditorModel.setValue(sqlContent); + } const editor = await this._editorService.openEditor(editDataInput, { pinned: true }); let params = editor.input as EditDataInput; return params;