From f90084bfbaf9bd62500d94fe582ad39c186c2493 Mon Sep 17 00:00:00 2001 From: Irakli Gozalishvili Date: Thu, 14 Jul 2011 11:44:12 +0200 Subject: [PATCH] Make padding text layer specific so that print margin and active line highlight are not affected. #342 --- lib/ace/layer/cursor.js | 10 ++++++++-- lib/ace/layer/marker.js | 15 ++++++++++++--- lib/ace/layer/text.js | 7 +++++++ lib/ace/virtual_renderer.js | 7 +++++-- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/lib/ace/layer/cursor.js b/lib/ace/layer/cursor.js index 8e7db23f..c6908039 100644 --- a/lib/ace/layer/cursor.js +++ b/lib/ace/layer/cursor.js @@ -55,6 +55,11 @@ var Cursor = function(parentEl) { (function() { + this.$padding = 0; + this.setPadding = function(padding) { + this.$padding = padding; + }; + this.setSession = function(session) { this.session = session; }; @@ -66,7 +71,7 @@ var Cursor = function(parentEl) { }; this.showCursor = function() { - this.isVisible = true; + this.isVisible = true; dom.removeCssClass(this.cursor, "ace_hidden"); this.cursor.style.visibility = "visible"; this.restartTimer(); @@ -97,7 +102,8 @@ var Cursor = function(parentEl) { var position = this.session.selection.getCursor(); var pos = this.session.documentToScreenPosition(position); - var cursorLeft = Math.round(pos.column * this.config.characterWidth); + var cursorLeft = Math.round(this.$padding + + pos.column * this.config.characterWidth); var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) * this.config.lineHeight; diff --git a/lib/ace/layer/marker.js b/lib/ace/layer/marker.js index 028bef33..d0f4fd3a 100644 --- a/lib/ace/layer/marker.js +++ b/lib/ace/layer/marker.js @@ -50,6 +50,12 @@ var Marker = function(parentEl) { (function() { + this.$padding = 0; + + this.setPadding = function(padding) { + this.$padding = padding; + }; + this.setSession = function(session) { this.session = session; }; @@ -65,7 +71,7 @@ var Marker = function(parentEl) { this.config = config; - var html = []; + var html = []; for ( var key in this.markers) { var marker = this.markers[key]; @@ -76,7 +82,9 @@ var Marker = function(parentEl) { if (marker.renderer) { var top = this.$getTop(range.start.row, config); - var left = Math.round(range.start.column * config.characterWidth); + var left = Math.round(this.$padding + + range.start.column * + config.characterWidth); marker.renderer(html, range, left, top, config); } else if (range.isMultiLine()) { @@ -162,7 +170,8 @@ var Marker = function(parentEl) { var height = layerConfig.lineHeight; var width = Math.round((range.end.column + (extraLength || 0) - range.start.column) * layerConfig.characterWidth); var top = this.$getTop(range.start.row, layerConfig); - var left = Math.round(range.start.column * layerConfig.characterWidth); + var left = Math.round(this.$padding + + range.start.column * layerConfig.characterWidth); stringBuilder.push( "