diff --git a/lib/ace/layer/marker.js b/lib/ace/layer/marker.js index 444ecdc3..e09a3c9b 100644 --- a/lib/ace/layer/marker.js +++ b/lib/ace/layer/marker.js @@ -81,21 +81,17 @@ var Marker = function(parentEl) { var left = this.$padding + range.start.column * config.characterWidth; marker.renderer(html, range, left, top, config); } + if (marker.type == "fullLine") { + this.drawFullLineMarker(html, range, marker.clazz, config); + } else if (range.isMultiLine()) { - if (marker.type == "text") { + if (marker.type == "text") this.drawTextMarker(html, range, marker.clazz, config); - } else { - this.drawMultiLineMarker( - html, range, marker.clazz, config, - marker.type - ); - } + else + this.drawMultiLineMarker(html, range, marker.clazz, config); } else { - this.drawSingleLineMarker( - html, range, marker.clazz + " ace_start", config, - null, marker.type - ); + this.drawSingleLineMarker(html, range, marker.clazz + " ace_start", config); } } this.element = dom.setInnerHtml(this.element, html.join("")); @@ -131,8 +127,8 @@ var Marker = function(parentEl) { // Draws a multi line marker, where lines span the full width this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, type) { - var padding = type === "background" ? 0 : this.$padding; // from selection start to the end of the line + var padding = this.$padding; var height = config.lineHeight; var top = this.$getTop(range.start.row, config); var left = padding + range.start.column * config.characterWidth; @@ -173,17 +169,12 @@ var Marker = function(parentEl) { }; // Draws a marker which covers part or whole width of a single screen line - this.drawSingleLineMarker = function(stringBuilder, range, clazz, layerConfig, extraLength, type) { - var padding = type === "background" ? 0 : this.$padding; - var height = layerConfig.lineHeight; + this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength) { + var height = config.lineHeight; + var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth; - if (type === "background") - var width = layerConfig.width; - else - width = (range.end.column + (extraLength || 0) - range.start.column) * layerConfig.characterWidth; - - var top = this.$getTop(range.start.row, layerConfig); - var left = padding + range.start.column * layerConfig.characterWidth; + var top = this.$getTop(range.start.row, config); + var left = this.$padding + range.start.column * config.characterWidth; stringBuilder.push( "
" + ); + } + }).call(Marker.prototype); exports.Marker = Marker;