More IE5.5 and IE6 tweaks. Those browsers are surprisingly finicky. Everything
else is better at following the specs... git-svn-id: https://shellinabox.googlecode.com/svn/trunk@83 0da03de8-d603-11dd-86c2-0f8696b7b6f9
This commit is contained in:
parent
f6f51448d5
commit
b2737d02f6
3 changed files with 20 additions and 6 deletions
2
config.h
2
config.h
|
@ -95,7 +95,7 @@
|
||||||
#define STDC_HEADERS 1
|
#define STDC_HEADERS 1
|
||||||
|
|
||||||
/* Most recent revision number in the version control system */
|
/* Most recent revision number in the version control system */
|
||||||
#define VCS_REVISION "81"
|
#define VCS_REVISION "82"
|
||||||
|
|
||||||
/* Version number of package */
|
/* Version number of package */
|
||||||
#define VERSION "2.4"
|
#define VERSION "2.4"
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#vt100 pre pre {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
#vt100 #scrollable {
|
#vt100 #scrollable {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
|
@ -55,6 +59,7 @@
|
||||||
visibility: hidden;
|
visibility: hidden;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
height: 0px;
|
height: 0px;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#vt100 .hidden {
|
#vt100 .hidden {
|
||||||
|
|
|
@ -198,6 +198,7 @@ VT100.prototype.initializeElements = function(container) {
|
||||||
!this.getChildById(this.container, 'scrollable') ||
|
!this.getChildById(this.container, 'scrollable') ||
|
||||||
!this.getChildById(this.container, 'console') ||
|
!this.getChildById(this.container, 'console') ||
|
||||||
!this.getChildById(this.container, 'alt_console') ||
|
!this.getChildById(this.container, 'alt_console') ||
|
||||||
|
!this.getChildById(this.container, 'ieprobe') ||
|
||||||
!this.getChildById(this.container, 'padding') ||
|
!this.getChildById(this.container, 'padding') ||
|
||||||
!this.getChildById(this.container, 'cursor') ||
|
!this.getChildById(this.container, 'cursor') ||
|
||||||
!this.getChildById(this.container, 'lineheight') ||
|
!this.getChildById(this.container, 'lineheight') ||
|
||||||
|
@ -235,10 +236,13 @@ VT100.prototype.initializeElements = function(container) {
|
||||||
'<div id="menu"></div>' +
|
'<div id="menu"></div>' +
|
||||||
'<div id="scrollable">' +
|
'<div id="scrollable">' +
|
||||||
'<pre id="lineheight"> </pre>' +
|
'<pre id="lineheight"> </pre>' +
|
||||||
'<pre id="console"></pre>' +
|
'<pre id="console">' +
|
||||||
|
'<pre></pre>' +
|
||||||
|
'<div id="ieprobe"><span> </span></div>' +
|
||||||
|
'</pre>' +
|
||||||
'<pre id="alt_console" style="display: none"></pre>' +
|
'<pre id="alt_console" style="display: none"></pre>' +
|
||||||
'<div id="padding"></div>' +
|
'<div id="padding"></div>' +
|
||||||
'<pre id="cursor">X</pre>' +
|
'<pre id="cursor"> </pre>' +
|
||||||
'</div>' +
|
'</div>' +
|
||||||
'<div class="hidden">' +
|
'<div class="hidden">' +
|
||||||
'<input type="textfield" id="input" />' +
|
'<input type="textfield" id="input" />' +
|
||||||
|
@ -274,6 +278,7 @@ VT100.prototype.initializeElements = function(container) {
|
||||||
this.console =
|
this.console =
|
||||||
[ this.getChildById(this.container, 'console'),
|
[ this.getChildById(this.container, 'console'),
|
||||||
this.getChildById(this.container, 'alt_console') ];
|
this.getChildById(this.container, 'alt_console') ];
|
||||||
|
var ieProbe = this.getChildById(this.container, 'ieprobe');
|
||||||
this.cursor = this.getChildById(this.container, 'cursor');
|
this.cursor = this.getChildById(this.container, 'cursor');
|
||||||
this.lineheight = this.getChildById(this.container,
|
this.lineheight = this.getChildById(this.container,
|
||||||
'lineheight');
|
'lineheight');
|
||||||
|
@ -288,8 +293,12 @@ VT100.prototype.initializeElements = function(container) {
|
||||||
// but it turns out that browsers sometimes invalidate these values
|
// but it turns out that browsers sometimes invalidate these values
|
||||||
// (e.g. while displaying a print preview screen).
|
// (e.g. while displaying a print preview screen).
|
||||||
this.cursorWidth = this.cursor.clientWidth;
|
this.cursorWidth = this.cursor.clientWidth;
|
||||||
this.cursorHeight = this.lineheight.clientHeight ||
|
this.cursorHeight = this.lineheight.clientHeight;
|
||||||
this.cursor.clientHeight;
|
|
||||||
|
// IE has a slightly different boxing model, that we need to compensate for
|
||||||
|
this.isIE = ieProbe.offsetTop > 1;
|
||||||
|
ieProbe = undefined;
|
||||||
|
this.console.innerHTML = '';
|
||||||
|
|
||||||
// Determine if the terminal window is positioned at the beginning of the
|
// Determine if the terminal window is positioned at the beginning of the
|
||||||
// page, or if it is embedded somewhere else in the page. For full-screen
|
// page, or if it is embedded somewhere else in the page. For full-screen
|
||||||
|
@ -1018,7 +1027,7 @@ VT100.prototype.putString = function(x, y, text, style) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (pixelX >= 0) {
|
if (pixelX >= 0) {
|
||||||
this.cursor.style.left = pixelX + 'px';
|
this.cursor.style.left = (pixelX + (this.isIE ? 1 : 0)) + 'px';
|
||||||
} else {
|
} else {
|
||||||
this.cursor.style.left = this.cursorX*this.cursorWidth +
|
this.cursor.style.left = this.cursorX*this.cursorWidth +
|
||||||
console.offsetLeft + 'px';
|
console.offsetLeft + 'px';
|
||||||
|
|
Loading…
Reference in a new issue