From 3ee7c0dc0f78a99a8806d99dc17a4cd4fe14692d Mon Sep 17 00:00:00 2001 From: Nathan Sobo Date: Tue, 3 Jul 2012 11:09:34 -0600 Subject: [PATCH] "Scroll" gutter by relatively positioning its line numbers This matches how we scroll lines, and eliminates opportunities for the gutter to get out of sync with the lines. If that happened, it would probably be a bug, but this at least eliminates one source of confusion when debugging. --- spec/app/editor-spec.coffee | 6 +++--- src/app/editor.coffee | 2 +- src/app/gutter.coffee | 2 +- static/editor.css | 4 ++++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index 1ccdc3bb3..e63c4ecb8 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -337,13 +337,13 @@ describe "Editor", -> expect(editor.verticalScrollbar.scrollTop()).toBe 100 expect(editor.scrollView.scrollTop()).toBe 0 expect(editor.renderedLines.css('top')).toBe "-100px" - expect(editor.gutter.scrollTop()).toBe 100 + expect(editor.gutter.lineNumbers.css('top')).toBe "-100px" editor.scrollTop(120) expect(editor.verticalScrollbar.scrollTop()).toBe 120 expect(editor.scrollView.scrollTop()).toBe 0 expect(editor.renderedLines.css('top')).toBe "-120px" - expect(editor.gutter.scrollTop()).toBe 120 + expect(editor.gutter.lineNumbers.css('top')).toBe "-120px" it "does not allow negative scrollTops to be assigned", -> editor.scrollTop(-100) @@ -365,7 +365,7 @@ describe "Editor", -> editor.scrollTop(100, adjustVerticalScrollbar: false) expect(editor.verticalScrollbar.scrollTop()).toBe 0 expect(editor.renderedLines.css('top')).toBe "-100px" - expect(editor.gutter.scrollTop()).toBe 100 + expect(editor.gutter.lineNumbers.css('top')).toBe "-100px" describe "when called with no argument", -> it "returns the last assigned value or 0 if none has been assigned", -> diff --git a/src/app/editor.coffee b/src/app/editor.coffee index fea68f676..c4d23dcf0 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -413,7 +413,7 @@ class Editor extends View @updateRenderedLines() if @attached @renderedLines.css('top', -scrollTop) - @gutter.scrollTop(scrollTop) + @gutter.lineNumbers.css('top', -scrollTop) if options?.adjustVerticalScrollbar ? true @verticalScrollbar.scrollTop(scrollTop) diff --git a/src/app/gutter.coffee b/src/app/gutter.coffee index 5e51b28b3..aa5f44c86 100644 --- a/src/app/gutter.coffee +++ b/src/app/gutter.coffee @@ -7,7 +7,7 @@ module.exports = class Gutter extends View @content: -> @div class: 'gutter', => - @div outlet: 'lineNumbers', class: 'wtf' + @div outlet: 'lineNumbers', class: 'line-numbers' editor: -> editor = @parentView diff --git a/static/editor.css b/static/editor.css index 4780e5b2d..c43298fcb 100644 --- a/static/editor.css +++ b/static/editor.css @@ -27,6 +27,10 @@ text-align: right; } +.editor .gutter .line-numbers { + position: relative; +} + .editor.mini .gutter { display: none; }