diff --git a/src/vs/editor/contrib/folding/folding.ts b/src/vs/editor/contrib/folding/folding.ts index a2a5757426433a58882519095d01091fcc97d142..c972f6885a220deae3dacd158c2aa71f2bd558b9 100644 --- a/src/vs/editor/contrib/folding/folding.ts +++ b/src/vs/editor/contrib/folding/folding.ts @@ -332,10 +332,13 @@ export class FoldingController implements IEditorContribution { switch (e.target.type) { case MouseTargetType.GUTTER_LINE_DECORATIONS: const data = e.target.detail as IMarginData; - const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft; + const offsetLeftInGutter = (e.target.element as HTMLElement).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 <= 10) { + if (gutterOffsetX < 10) { return; } diff --git a/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts b/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts index cf03d184c673e78bfec72146d7010d2dff63dae3..96041ed6b3dfe0e363494bd3ed12106233e331e3 100644 --- a/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts +++ b/src/vs/workbench/parts/comments/electron-browser/commentThreadWidget.ts @@ -523,7 +523,7 @@ export class ReviewZoneWidget extends ZoneWidget { const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft; // don't collide with folding and git decorations - if (gutterOffsetX < 10 && gutterOffsetX > 19) { + if (gutterOffsetX > 14) { return; } diff --git a/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts b/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts index 62b9f49d6e530325a9c42eb573915d7e7a5b4114..094367fe97b5dce61531c74f2ff644560d03c698 100644 --- a/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts +++ b/src/vs/workbench/parts/comments/electron-browser/commentsEditorContribution.ts @@ -102,7 +102,7 @@ class CommentingRangeDecorator { isWholeLine: true, }; - decorationOptions.linesDecorationsClassName = `comment-dirty-diff-glyph ${className}`; + decorationOptions.linesDecorationsClassName = `comment-range-glyph ${className}`; return ModelDecorationOptions.createDynamic(decorationOptions); } @@ -423,7 +423,7 @@ export class ReviewController implements IEditorContribution { const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft; // don't collide with folding and git decorations - if (gutterOffsetX < 10 && gutterOffsetX > 19) { + if (gutterOffsetX > 14) { return; } diff --git a/src/vs/workbench/parts/comments/electron-browser/media/review.css b/src/vs/workbench/parts/comments/electron-browser/media/review.css index 78b1615a052aa08d0b5a955ed27b0bffc427d9cf..c2658cc248cb131be99a53893f734846bace399f 100644 --- a/src/vs/workbench/parts/comments/electron-browser/media/review.css +++ b/src/vs/workbench/parts/comments/electron-browser/media/review.css @@ -241,12 +241,14 @@ position: relative; } -.monaco-editor .comment-dirty-diff-glyph { - margin-left: 14px; +.monaco-editor .comment-range-glyph { + margin-left: 5px; + width: 4px !important; cursor: pointer; + z-index: 10; } -.monaco-editor .comment-dirty-diff-glyph:before { +.monaco-editor .comment-range-glyph:before { position: absolute; content: ''; height: 100%; @@ -255,7 +257,7 @@ transition: width 80ms linear, left 80ms linear; } -.monaco-editor .margin-view-overlays>div:hover>.comment-dirty-diff-glyph.comment-diff-added:before { +.monaco-editor .margin-view-overlays>div:hover>.comment-range-glyph.comment-diff-added:before { position: absolute; content: '+'; height: 100%; @@ -265,7 +267,11 @@ color: black; } -.monaco-editor .comment-dirty-diff-glyph.comment-thread:before { +.monaco-editor .comment-range-glyph.comment-thread { + z-index: 20; +} + +.monaco-editor .comment-range-glyph.comment-thread:before { position: absolute; content: 'ยท'; height: 100%; @@ -277,4 +283,8 @@ .monaco-editor.inline-comment .margin-view-overlays .folding { margin-left: 14px; -} \ No newline at end of file +} + +.monaco-editor.inline-comment .margin-view-overlays .dirty-diff-glyph { + margin-left: 14px; +} diff --git a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts index 505f3c8a672364c2b855f34b8a1d3ff32abe5b3d..def130b2dd7469181e5b553fd1c38c01ee7a692e 100644 --- a/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts +++ b/src/vs/workbench/parts/scm/electron-browser/dirtydiffDecorator.ts @@ -703,11 +703,16 @@ export class DirtyDiffController implements IEditorContribution { return; } + if (e.target.element.className.indexOf('dirty-diff-glyph') < 0) { + return; + } + const data = e.target.detail as IMarginData; - const gutterOffsetX = data.offsetX - data.glyphMarginWidth - data.lineNumbersWidth - data.glyphMarginLeft; + const offsetLeftInGutter = (e.target.element as HTMLElement).offsetLeft; + const gutterOffsetX = data.offsetX - offsetLeftInGutter; // TODO@joao TODO@alex TODO@martin this is such that we don't collide with folding - if (gutterOffsetX > 10) { + if (gutterOffsetX < 0 || gutterOffsetX > 10) { return; } diff --git a/src/vs/workbench/parts/scm/electron-browser/media/dirtydiffDecorator.css b/src/vs/workbench/parts/scm/electron-browser/media/dirtydiffDecorator.css index de4d95ed717355e49c2e29d28b38b43939c6a334..8a884647c663eccfe9b2a4525d1614743de71c88 100644 --- a/src/vs/workbench/parts/scm/electron-browser/media/dirtydiffDecorator.css +++ b/src/vs/workbench/parts/scm/electron-browser/media/dirtydiffDecorator.css @@ -6,6 +6,7 @@ .monaco-editor .dirty-diff-glyph { margin-left: 5px; cursor: pointer; + z-index: 5; } .monaco-editor .dirty-diff-deleted:after {