Terminal.prototype.fit = function () {
var container = this.rowContainer,
subjectRow = this.rowContainer.firstElementChild,
- rows = parseInt(container.offsetHeight / subjectRow.offsetHeight),
+ rows,
contentBuffer,
characterWidth,
+ characterHeight,
cols;
-
+
subjectRow.style.display = 'inline';
contentBuffer = subjectRow.textContent;
- subjectRow.textContent = ' ';
+ 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);
+
+ var parentElementStyle = window.getComputedStyle(this.element.parentElement),
+ parentElementHeight = parseInt(parentElementStyle.getPropertyValue('height')),
+ elementStyle = window.getComputedStyle(this.element),
+ elementPadding = parseInt(elementStyle.getPropertyValue('padding-top')) + parseInt(elementStyle.getPropertyValue('padding-bottom')),
+ availableHeight = parentElementHeight - elementPadding;
+
+ rows = parseInt(availableHeight / characterHeight);
this.resize(cols, rows);
};
\ No newline at end of file
<head>
<title>xterm.js demo</title>
<link rel="stylesheet" href="../src/xterm.css" />
- <link rel="stylesheet" href="../addon/fullscreen/fullscreen.css" />
+ <link rel="stylesheet" href="../addons/fullscreen/fullscreen.css" />
<link rel="stylesheet" href="style.css" />
<script src="../src/xterm.js" ></script>
<script src="../addons/fit/fit.js" ></script>