diff --git a/code/src/vs/workbench/contrib/chat/browser/chatInputPart.ts b/code/src/vs/workbench/contrib/chat/browser/chatInputPart.ts index 8f910bc2e76..52d7d73bd97 100644 --- a/code/src/vs/workbench/contrib/chat/browser/chatInputPart.ts +++ b/code/src/vs/workbench/contrib/chat/browser/chatInputPart.ts @@ -516,7 +516,7 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge onDidChangeCursorPosition(); } - private initAttachedContext(container: HTMLElement) { + private initAttachedContext(container: HTMLElement, isLayout = false) { const oldHeight = container.offsetHeight; dom.clearNode(container); this.attachedContextDisposables.clear(); @@ -578,7 +578,7 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge this.attachedContextDisposables.add(disp); }); - if (oldHeight !== container.offsetHeight) { + if (oldHeight !== container.offsetHeight && !isLayout) { this._onDidChangeHeight.fire(); } } @@ -609,7 +609,7 @@ export class ChatInputPart extends Disposable implements IHistoryNavigationWidge private previousInputEditorDimension: IDimension | undefined; private _layout(height: number, width: number, allowRecurse = true): void { - this.initAttachedContext(this.attachedContextContainer); + this.initAttachedContext(this.attachedContextContainer, true); const data = this.getLayoutData(); diff --git a/code/src/vs/workbench/contrib/debug/browser/callStackWidget.ts b/code/src/vs/workbench/contrib/debug/browser/callStackWidget.ts index 0b6b0e6bc28..d02de4fb72f 100644 --- a/code/src/vs/workbench/contrib/debug/browser/callStackWidget.ts +++ b/code/src/vs/workbench/contrib/debug/browser/callStackWidget.ts @@ -144,6 +144,7 @@ export class CallStackWidget extends Disposable { multipleSelectionSupport: false, mouseSupport: false, keyboardSupport: false, + setRowLineHeight: false, accessibilityProvider: instantiationService.createInstance(StackAccessibilityProvider), } ) as WorkbenchList); diff --git a/code/src/vs/workbench/contrib/debug/browser/media/callStackWidget.css b/code/src/vs/workbench/contrib/debug/browser/media/callStackWidget.css index e4c0a1a61b1..e5e0d56e15f 100644 --- a/code/src/vs/workbench/contrib/debug/browser/media/callStackWidget.css +++ b/code/src/vs/workbench/contrib/debug/browser/media/callStackWidget.css @@ -24,6 +24,10 @@ &[role="link"] { cursor: pointer; } + + .monaco-icon-label::before { + height: auto; + } } &.collapsed { @@ -39,6 +43,7 @@ .collapse-button { width: 16px; min-height: 1px; /* show even if empty */ + line-height: 0; a { cursor: pointer; @@ -56,7 +61,6 @@ .multiCallStackWidget { .multiCallStackFrameContainer { background: none !important; - line-height: inherit !important; } } diff --git a/code/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts b/code/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts index a2adaf3bb6e..32b1b2c2de5 100644 --- a/code/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts +++ b/code/src/vs/workbench/contrib/notebook/browser/diff/diffComponents.ts @@ -1644,7 +1644,7 @@ export class ModifiedElement extends AbstractElementRenderer { { updateInfoRendering: () => renderSourceEditor(), checkIfModified: (cell) => { - return cell.modified?.textModel.getValue() !== cell.original?.textModel.getValue() ? { reason: undefined } : false; + return cell.modified?.textModel.getTextBufferHash() !== cell.original?.textModel.getTextBufferHash() ? { reason: undefined } : false; }, getFoldingState: (cell) => cell.cellFoldingState, updateFoldingState: (cell, state) => cell.cellFoldingState = state, @@ -1660,7 +1660,7 @@ export class ModifiedElement extends AbstractElementRenderer { const scopedContextKeyService = this.contextKeyService.createScoped(this.templateData.inputToolbarContainer); this._register(scopedContextKeyService); const inputChanged = NOTEBOOK_DIFF_CELL_INPUT.bindTo(scopedContextKeyService); - inputChanged.set(this.cell.modified.textModel.getValue() !== this.cell.original.textModel.getValue()); + inputChanged.set(this.cell.modified.textModel.getTextBufferHash() !== this.cell.original.textModel.getTextBufferHash()); const ignoreWhitespace = NOTEBOOK_DIFF_CELL_IGNORE_WHITESPACE.bindTo(scopedContextKeyService); const ignore = this.textConfigurationService.getValue(this.cell.modified.uri, 'diffEditor.ignoreTrimWhitespace'); @@ -1675,7 +1675,7 @@ export class ModifiedElement extends AbstractElementRenderer { const refreshToolbar = () => { const ignore = this.textConfigurationService.getValue(this.cell.modified.uri, 'diffEditor.ignoreTrimWhitespace'); ignoreWhitespace.set(ignore); - const hasChanges = this.cell.modified.textModel.getValue() !== this.cell.original.textModel.getValue(); + const hasChanges = this.cell.modified.textModel.getTextBufferHash() !== this.cell.original.textModel.getTextBufferHash(); inputChanged.set(hasChanges); if (hasChanges) { diff --git a/code/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.ts b/code/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.ts index 0c82062b13c..dd2b3f12201 100644 --- a/code/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.ts +++ b/code/src/vs/workbench/contrib/notebook/browser/diff/notebookDiffViewModel.ts @@ -441,16 +441,12 @@ function createDiffViewModels(instantiationService: IInstantiationService, confi ); } case 'unchanged': { - const originalCell = originalModel.cells[diff.originalCellIndex]; - const modifiedCell = modifiedModel.cells[diff.modifiedCellIndex]; - const type = (originalCell.textModel?.getValue() !== modifiedCell.textModel?.getValue()) ? 'modified' : 'unchanged'; return new SideBySideDiffElementViewModel( model.modified.notebook, model.original.notebook, - originalCell, - modifiedCell, - type, - eventDispatcher, + originalModel.cells[diff.originalCellIndex], + modifiedModel.cells[diff.modifiedCellIndex], + 'unchanged', eventDispatcher, initData, notebookService ); diff --git a/code/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts b/code/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts index 3d7310c6438..e83261cf204 100644 --- a/code/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts +++ b/code/src/vs/workbench/contrib/notebook/common/model/notebookCellTextModel.ts @@ -419,6 +419,10 @@ export class NotebookCellTextModel extends Disposable implements ICell { return false; } + if (this.outputs.length !== b.outputs.length) { + return false; + } + if (this.getTextLength() !== b.getTextLength()) { return false; }