diff --git a/addons/fit/fit.js b/addons/fit/fit.js index da57644d..9da39b25 100644 --- a/addons/fit/fit.js +++ b/addons/fit/fit.js @@ -27,23 +27,25 @@ Xterm.prototype.proposeGeometry = function () { var container = this.rowContainer, subjectRow = this.rowContainer.firstElementChild, + cursor = this.element.querySelector('.terminal-cursor'), rows, - contentBuffer, characterWidth, cols; - subjectRow.style.display = 'inline'; + characterWidth = Math.ceil(cursor.offsetWidth); + + /* + * The following hack takes place in order to get "fit" work properly + * in Mozilla Firefox. + * Most probably, because of a dimension calculation bug, Firefox + * calculates the width to be 1px less than it is actually drawn on + * screen. + */ + if (navigator.userAgent.match(/Gecko/)) { + characterWidth++; + } - contentBuffer = subjectRow.innerHTML; - - subjectRow.innerHTML = ' '; /* Arbitrary character to calculate its dimensions */ - characterWidth = parseInt(subjectRow.offsetWidth); - characterHeight = parseInt(subjectRow.offsetHeight); - - subjectRow.style.display = ''; - - cols = container.offsetWidth / characterWidth; - cols = parseInt(cols); + cols = parseInt(container.offsetWidth / characterWidth); var parentElementStyle = window.getComputedStyle(this.element.parentElement), parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')), @@ -54,8 +56,6 @@ rows = parseInt(availableHeight / rowHeight); - subjectRow.innerHTML = contentBuffer; /* Replace original content */ - var geometry = { 'cols': cols, 'rows': rows diff --git a/bower.json b/bower.json index 3658d46e..2ef9f1e0 100644 --- a/bower.json +++ b/bower.json @@ -1,5 +1,5 @@ { "name": "xterm.js", - "version": "0.25", + "version": "0.26", "ignore": ["demo", "docs", "test", ".gitignore"] } diff --git a/docs/conf.py b/docs/conf.py index 877829c3..66d62b7f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -51,9 +51,9 @@ copyright = u'2014, SourceLair Limited' # built documents. # # The short X.Y version. -version = '0.25' +version = '0.26' # The full version, including alpha/beta/rc tags. -release = '0.25 Alpha' +release = '0.26 Alpha' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages.