Skip to content

Commit

Permalink
🐛 Fix invalid layout when adding removing a color in a line
Browse files Browse the repository at this point in the history
  • Loading branch information
abe33 committed Jul 31, 2014
1 parent d748941 commit a185707
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 2 deletions.
15 changes: 14 additions & 1 deletion lib/atom-color-highlight-view.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,18 @@ class AtomColorHighlightView extends View
markersUpdated: (@markers) =>
markerViewsToRemoveById = _.clone(@markerViews)
markersByRows = {}
useDots = atom.config.get('atom-color-highlight.markersAtEndOfLine')
sortedMarkers = []

for marker in @markers
if @markerViews[marker.id]?
delete markerViewsToRemoveById[marker.id]
if useDots
sortedMarkers.push @markerViews[marker.id]
else
if atom.config.get('atom-color-highlight.markersAtEndOfLine')
if useDots
markerView = new DotMarkerView({@editorView, marker, markersByRows})
sortedMarkers.push markerView
else
markerView = new MarkerView({@editorView, marker})
@append(markerView.element)
Expand All @@ -130,6 +135,14 @@ class AtomColorHighlightView extends View
delete @markerViews[id]
markerView.remove()

if useDots
markersByRows = {}
for markerView in sortedMarkers
markerView.markersByRows = markersByRows
markerView.updateNeeded = true
markerView.clearPosition = true
markerView.updateDisplay()

rebuildMarkers: =>
return unless @markers
markersByRows = {}
Expand Down
7 changes: 6 additions & 1 deletion lib/dot-marker-view.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class DotMarkerView
@updateNeeded = @marker.isValid()
@oldScreenRange = @getScreenRange()
@buffer = @editor.buffer
@clearPosition = true

@subscribeToMarker()
@updateDisplay()
Expand All @@ -31,7 +32,11 @@ class DotMarkerView
size = @getSize()
spacing = @getSpacing()
@markersByRows[range.start.row] ?= 0
@position ?= @markersByRows[range.start.row]

if @clearPosition
@position = @markersByRows[range.start.row]
@clearPosition = false

@markersByRows[range.start.row]++

color = @getColor()
Expand Down

0 comments on commit a185707

Please sign in to comment.