Merge 9edae1da09 into 047531e886
This commit is contained in:
commit
d6ece3e40c
|
|
@ -0,0 +1,67 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>noVNC</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="top_bar">
|
||||
<ul>
|
||||
<li>
|
||||
<label for="noVNC_setting_host">Host:</label>
|
||||
<input id="noVNC_setting_host">
|
||||
</li>
|
||||
<li>
|
||||
<label for="noVNC_setting_port">Port:</label>
|
||||
<input id="noVNC_setting_port" value="5701">
|
||||
</li>
|
||||
<li>
|
||||
<label for="noVNC_setting_path">Path:</label>
|
||||
<input id="noVNC_setting_path" type="text" value="websockify">
|
||||
</li>
|
||||
<li>
|
||||
<label for="noVNC_setting_token">token:</label>
|
||||
<input id="noVNC_setting_token" type="text" value="">
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" onclick="OpenWindow();">Open Window</button>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function OpenWindow() {
|
||||
let rul;
|
||||
// vnc. html/?token=token&autoconnect=1&resize=browser','_blank','toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420'
|
||||
|
||||
rul = "vnc.html?";
|
||||
|
||||
path = document.getElementById('noVNC_setting_path').value;
|
||||
port = document.getElementById('noVNC_setting_port').value;
|
||||
host = document.getElementById('noVNC_setting_host').value;
|
||||
token = document.getElementById('noVNC_setting_token').value;
|
||||
|
||||
if (token) {
|
||||
rul += "token=" + token + "&";
|
||||
}
|
||||
if (host) {
|
||||
rul += "host=" + host + "&";
|
||||
}
|
||||
if (port) {
|
||||
rul += "port=" + port + "&";
|
||||
}
|
||||
if (path) {
|
||||
rul += "path=" + path + "&";
|
||||
}
|
||||
|
||||
rul += "autoconnect=" + "1" + "&";
|
||||
rul += "resize=" + "off";
|
||||
|
||||
window.open(rul,
|
||||
'_blank',
|
||||
'toolbar=no,location=no,status=no,menubar=no,resizable=yes,width=800,height=420'
|
||||
);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
38
app/ui.js
38
app/ui.js
|
|
@ -42,6 +42,10 @@ const UI = {
|
|||
reconnectCallback: null,
|
||||
reconnectPassword: null,
|
||||
|
||||
// Old browser resolution
|
||||
bodyWidthBrowserResize: 0,
|
||||
bodyHeightBrowserResize: 0,
|
||||
|
||||
prime() {
|
||||
return WebUtil.initSettings().then(() => {
|
||||
if (document.readyState === "interactive" || document.readyState === "complete") {
|
||||
|
|
@ -988,6 +992,28 @@ const UI = {
|
|||
.classList.remove("noVNC_open");
|
||||
},
|
||||
|
||||
_updateBrowserWindows(width, height) {
|
||||
let bodyWidth = document.body.clientWidth;
|
||||
let bodyHeight = document.body.clientHeight;
|
||||
|
||||
let OldResolutionEqual = false;
|
||||
if (UI.bodyWidthBrowserResize === document.body.clientWidth &&
|
||||
UI.bodyHeightBrowserResize === document.body.clientHeight) {
|
||||
OldResolutionEqual = true;
|
||||
}
|
||||
if (UI.bodyHeightBrowserResize === 0 ||
|
||||
OldResolutionEqual) {
|
||||
if ((width != 0) && (height != 0)) {
|
||||
window.resizeBy(width - bodyWidth, height - bodyHeight);
|
||||
UI.bodyWidthBrowserResize = width;
|
||||
UI.bodyHeightBrowserResize = height;
|
||||
}
|
||||
} else {
|
||||
// disabled
|
||||
UI.bodyWidthBrowserResize = 0;
|
||||
}
|
||||
},
|
||||
|
||||
connect(event, password) {
|
||||
|
||||
// Ignore when rfb already exists
|
||||
|
|
@ -1058,6 +1084,12 @@ const UI = {
|
|||
UI.rfb.clipViewport = UI.getSetting('view_clip');
|
||||
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
|
||||
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
|
||||
if (UI.getSetting('resize') === 'off') {
|
||||
UI.bodyHeightBrowserResize = 0;
|
||||
UI.rfb.resizeBrowser = UI._updateBrowserWindows;
|
||||
} else {
|
||||
UI.rfb.resizeBrowser = false;
|
||||
}
|
||||
UI.rfb.qualityLevel = parseInt(UI.getSetting('quality'));
|
||||
UI.rfb.compressionLevel = parseInt(UI.getSetting('compression'));
|
||||
UI.rfb.showDotCursor = UI.getSetting('show_dot');
|
||||
|
|
@ -1311,6 +1343,12 @@ const UI = {
|
|||
|
||||
UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
|
||||
UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
|
||||
if (UI.getSetting('resize') === 'off') {
|
||||
UI.bodyHeightBrowserResize = 0;
|
||||
UI.rfb.resizeBrowser = UI._updateBrowserWindows;
|
||||
} else {
|
||||
UI.rfb.resizeBrowser = false;
|
||||
}
|
||||
},
|
||||
|
||||
/* ------^-------
|
||||
|
|
|
|||
13
core/rfb.js
13
core/rfb.js
|
|
@ -294,6 +294,7 @@ export default class RFB extends EventTargetMixin {
|
|||
this._clippingViewport = false;
|
||||
this._scaleViewport = false;
|
||||
this._resizeSession = false;
|
||||
this._resizeBrowser = false;
|
||||
|
||||
this._showDotCursor = false;
|
||||
if (options.showDotCursor !== undefined) {
|
||||
|
|
@ -364,6 +365,14 @@ export default class RFB extends EventTargetMixin {
|
|||
}
|
||||
}
|
||||
|
||||
get resizeBrowser() { return this._resizeBrowser; }
|
||||
set resizeBrowser(void_) {
|
||||
this._resizeBrowser = void_;
|
||||
if (this._resizeBrowser && (this._rfbConnectionState === 'connected')) {
|
||||
this._resizeBrowser(this._fbWidth, this._fbHeight);
|
||||
}
|
||||
}
|
||||
|
||||
get showDotCursor() { return this._showDotCursor; }
|
||||
set showDotCursor(show) {
|
||||
this._showDotCursor = show;
|
||||
|
|
@ -2875,6 +2884,10 @@ export default class RFB extends EventTargetMixin {
|
|||
this._fbWidth = width;
|
||||
this._fbHeight = height;
|
||||
|
||||
if (this._resizeBrowser) {
|
||||
this._resizeBrowser(width, height);
|
||||
}
|
||||
|
||||
this._display.resize(this._fbWidth, this._fbHeight);
|
||||
|
||||
// Adjust the visible viewport based on the new dimensions
|
||||
|
|
|
|||
Loading…
Reference in New Issue