diff --git a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css index 452d83eeb8b7a..20c8a2ceed071 100644 --- a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css +++ b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.css @@ -14,5 +14,11 @@ */ .monaco-editor .margin-view-overlays .cldr { position: absolute; + width: 100%; height: 100%; -} \ No newline at end of file +} + +.monaco-editor .margin-view-overlays .line-decor-container { + position: absolute; + height: 100%; +} diff --git a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts index 2c1b1e495f055..cc89fa26306aa 100644 --- a/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts +++ b/src/vs/editor/browser/viewParts/linesDecorations/linesDecorations.ts @@ -95,7 +95,6 @@ export class LinesDecorationsOverlay extends DedupOverlay { const left = this._decorationsLeft.toString(); const width = this._decorationsWidth.toString(); - const common = '" style="left:' + left + 'px;width:' + width + 'px;">'; const output: string[] = []; for (let lineNumber = visibleStartLineNumber; lineNumber <= visibleEndLineNumber; lineNumber++) { @@ -103,14 +102,9 @@ export class LinesDecorationsOverlay extends DedupOverlay { const decorations = toRender[lineIndex].getDecorations(); let lineOutput = ''; for (const decoration of decorations) { - let addition = '
`; } - output[lineIndex] = lineOutput; + output[lineIndex] = `
${lineOutput}
`; } this._renderResult = output; diff --git a/src/vs/editor/contrib/folding/browser/folding.css b/src/vs/editor/contrib/folding/browser/folding.css index 11ee8010be44d..3273cb405a1fa 100644 --- a/src/vs/editor/contrib/folding/browser/folding.css +++ b/src/vs/editor/contrib/folding/browser/folding.css @@ -14,6 +14,7 @@ justify-content: center; font-size: 140%; margin-left: 2px; + z-index: 1; } .monaco-reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed, diff --git a/src/vs/editor/contrib/folding/browser/folding.ts b/src/vs/editor/contrib/folding/browser/folding.ts index 49b243f0733a1..f25d03298cc34 100644 --- a/src/vs/editor/contrib/folding/browser/folding.ts +++ b/src/vs/editor/contrib/folding/browser/folding.ts @@ -407,17 +407,9 @@ export class FoldingController extends Disposable implements IEditorContribution let iconClicked = false; switch (e.target.type) { case MouseTargetType.GUTTER_LINE_DECORATIONS: { - const data = e.target.detail; - const offsetLeftInGutter = e.target.element!.offsetLeft; - const gutterOffsetX = data.offsetX - offsetLeftInGutter; - - // const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft; - - // TODO@joao TODO@alex TODO@martin this is such that we don't collide with dirty diff - if (gutterOffsetX < 4) { // the whitespace between the border and the real folding icon border is 4px + if (e.target.element?.classList?.contains?.('dirty-diff-glyph')) { return; } - iconClicked = true; break; } diff --git a/src/vs/workbench/contrib/scm/browser/media/dirtydiffDecorator.css b/src/vs/workbench/contrib/scm/browser/media/dirtydiffDecorator.css index 1cea03b405730..8b0bf4ce2ad3a 100644 --- a/src/vs/workbench/contrib/scm/browser/media/dirtydiffDecorator.css +++ b/src/vs/workbench/contrib/scm/browser/media/dirtydiffDecorator.css @@ -5,7 +5,6 @@ .monaco-editor .dirty-diff-glyph { margin-left: 5px; - z-index: 5; } .monaco-editor .dirty-diff-glyph:before { @@ -14,6 +13,7 @@ height: 100%; width: 0; left: -2px; + z-index: 5; } .monaco-workbench.monaco-enable-motion .monaco-editor .dirty-diff-glyph:before { diff --git a/src/vs/workbench/contrib/scm/browser/quickDiffWidget.ts b/src/vs/workbench/contrib/scm/browser/quickDiffWidget.ts index 51bf45c1fadb8..0a4db9881818e 100644 --- a/src/vs/workbench/contrib/scm/browser/quickDiffWidget.ts +++ b/src/vs/workbench/contrib/scm/browser/quickDiffWidget.ts @@ -519,13 +519,13 @@ export class QuickDiffEditorController extends Disposable implements IEditorCont cursor: pointer; } - .monaco-editor .margin-view-overlays .dirty-diff-glyph:hover::before { + .monaco-editor .margin-view-overlays .line-decor-container:hover .dirty-diff-glyph::before { height: 100%; width: 6px; left: -6px; } - .monaco-editor .margin-view-overlays .dirty-diff-deleted:hover::after { + .monaco-editor .margin-view-overlays .line-decor-container:hover .dirty-diff-deleted::after { bottom: 0; border-top-width: 0; border-bottom-width: 0; @@ -680,16 +680,7 @@ export class QuickDiffEditorController extends Disposable implements IEditorCont if (!e.target.element) { return; } - if (e.target.element.className.indexOf('dirty-diff-glyph') < 0) { - return; - } - - const data = e.target.detail; - const offsetLeftInGutter = e.target.element.offsetLeft; - const gutterOffsetX = data.offsetX - offsetLeftInGutter; - - // TODO@joao TODO@alex TODO@martin this is such that we don't collide with folding - if (gutterOffsetX < -3 || gutterOffsetX > 3) { // dirty diff decoration on hover is 6px wide + if (!e.target.element.classList.contains('dirty-diff-glyph')) { return; }