From 60cfe6f16102baa668ed7dae979dc275b659a5c9 Mon Sep 17 00:00:00 2001 From: nightwing Date: Wed, 13 Nov 2013 03:34:52 +0400 Subject: [PATCH] update wrapData when wrapMethod changes --- lib/ace/edit_session.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js index 98c1e940..5f77bfd8 100644 --- a/lib/ace/edit_session.js +++ b/lib/ace/edit_session.js @@ -948,9 +948,9 @@ var EditSession = function(text, mode) { this.tokenRe = mode.tokenRe; this.nonTokenRe = mode.nonTokenRe; - this.$options.wrapMethod.set.call(this, this.$wrapMethod); if (!$isPlaceholder) { + this.$options.wrapMethod.set.call(this, this.$wrapMethod); this.$setFolding(mode.foldingRules); this._emit("changeMode"); this.bgTokenizer.start(0); @@ -2456,10 +2456,17 @@ config.defineOptions(EditSession.prototype, "session", { wrapMethod: { // code|text|auto set: function(val) { - if (val == "auto") - this.$wrapAsCode = this.$mode.type != "text"; - else - this.$wrapAsCode = val != "text"; + val = val == "auto" + ? this.$mode.type != "text" + : val != "text"; + if (val != this.$wrapAsCode) { + this.$wrapAsCode = val; + if (this.$useWrapMode) { + this.$modified = true; + this.$resetRowCache(0); + this.$updateWrapData(0, this.getLength() - 1); + } + } }, initialValue: "auto" },