[pve-devel] [PATCH novnc] add patches to workaround fullscreen issue in android app

Dominik Csapak d.csapak at proxmox.com
Tue Dec 21 08:05:56 CET 2021


On 12/20/21 20:53, Thomas Lamprecht wrote:
> On 20/12/2021 12:33, Dominik Csapak wrote:
>> patch 15 hides the fullscreen button,
>> patch 16 make the error message dismissable
>>
> 
> this seems broken?
> 
> The d/patches/series file gets 16 and 17 added:
> 
> 0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
> 0017-make-error-hideable.patch
> 
> So above is at least confusing, but actually this diff then only includes the
> 0017 patch, which then makes it completely wrong?!

what do you mean?
admittedly i forgot to mention that this only applies on top of the
v1.3.0 upgrade, but the patches are ...

> 
>> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> ---
>>   ...-button-on-isFullscreen-get-variable.patch | 39 +++++++++++++++
>>   debian/patches/0017-make-error-hideable.patch | 47 +++++++++++++++++++
>>   debian/patches/series                         |  2 +
>>   3 files changed, 88 insertions(+)
>>   create mode 100644 debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
>>   create mode 100644 debian/patches/0017-make-error-hideable.patch

both here? namely..

>>
>> diff --git a/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch b/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
>> new file mode 100644
>> index 0000000..1cdafd2
>> --- /dev/null
>> +++ b/debian/patches/0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch

here and...

>> @@ -0,0 +1,39 @@
>> +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
>> +From: Dominik Csapak <d.csapak at proxmox.com>
>> +Date: Mon, 20 Dec 2021 09:28:35 +0100
>> +Subject: [PATCH] hide fullscreen button on 'isFullscreen' get variable
>> +
>> +workaround for android app, since the webview does not allow
>> +'requestFullscreen' apparently, so we make the webview fullscreen and
>> +hide the button here.
>> +
>> +Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> +---
>> + app/pve.js | 7 +++++++
>> + 1 file changed, 7 insertions(+)
>> +
>> +diff --git a/app/pve.js b/app/pve.js
>> +index 486bd5c..042eb7c 100644
>> +--- a/app/pve.js
>> ++++ b/app/pve.js
>> +@@ -12,6 +12,7 @@ export default function PVEUI(UI){
>> +     this.nodename = WebUtil.getQueryVar('node');
>> +     this.resize = WebUtil.getQueryVar('resize');
>> +     this.cmd = WebUtil.getQueryVar('cmd');
>> ++    this.fullscreen = WebUtil.getQueryVar('isFullscreen');
>> +     this.lastFBWidth = undefined;
>> +     this.lastFBHeight = undefined;
>> +     this.sizeUpdateTimer = undefined;
>> +@@ -304,6 +305,12 @@ PVEUI.prototype = {
>> + 		.classList.add('pve_hidden');
>> + 	}
>> +
>> ++	// hide fullscren button when it's already fullscreen (e.g. android app)
>> ++	if (me.fullscreen) {
>> ++	    document.getElementById('noVNC_fullscreen_button')
>> ++		.classList.add('pve_hidden');
>> ++	}
>> ++
>> + 	// add command logic
>> + 	var commandArray = [
>> + 	    { cmd: 'start', kvm: 1, lxc: 1},
>> diff --git a/debian/patches/0017-make-error-hideable.patch b/debian/patches/0017-make-error-hideable.patch
>> new file mode 100644
>> index 0000000..9322ade
>> --- /dev/null
>> +++ b/debian/patches/0017-make-error-hideable.patch

here?

>> @@ -0,0 +1,47 @@
>> +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
>> +From: Dominik Csapak <d.csapak at proxmox.com>
>> +Date: Mon, 20 Dec 2021 09:34:36 +0100
>> +Subject: [PATCH] make error hideable
>> +
>> +by clicking on it
>> +
>> +Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>> +---
>> + app/error-handler.js | 17 +++++++++++++++--
>> + 1 file changed, 15 insertions(+), 2 deletions(-)
>> +
>> +diff --git a/app/error-handler.js b/app/error-handler.js
>> +index 81a6cba..6ce8013 100644
>> +--- a/app/error-handler.js
>> ++++ b/app/error-handler.js
>> +@@ -15,6 +15,18 @@
>> +
>> + (function _scope() {
>> +     "use strict";
>> ++    function hideError() {
>> ++	const msg = document.getElementById('noVNC_fallback_errormsg');
>> ++
>> ++	// close it
>> ++	document.getElementById('noVNC_fallback_error')
>> ++	    .classList.remove("noVNC_open");
>> ++
>> ++	// remove all children
>> ++	while (msg.firstChild) {
>> ++	    msg.removeChild(msg.firstChild);
>> ++	}
>> ++    }
>> +
>> +     // Fallback for all uncought errors
>> +     function handleError(event, err) {
>> +@@ -52,8 +64,9 @@
>> +                 msg.appendChild(div);
>> +             }
>> +
>> +-            document.getElementById('noVNC_fallback_error')
>> +-                .classList.add("noVNC_open");
>> ++            const node = document.getElementById('noVNC_fallback_error');
>> ++	    node.classList.add("noVNC_open");
>> ++	    node.onclick = hideError;
>> +         } catch (exc) {
>> +             document.write("noVNC encountered an error.");
>> +         }
>> diff --git a/debian/patches/series b/debian/patches/series
>> index 4913924..a520e27 100644
>> --- a/debian/patches/series
>> +++ b/debian/patches/series
>> @@ -13,3 +13,5 @@
>>   0013-Revert-Remove-the-default-value-of-wsProtocols.patch
>>   0014-avoid-passing-deprecated-upgrade-parameter.patch
>>   0015-create-own-class-for-hidden-buttons.patch
>> +0016-hide-fullscreen-button-on-isFullscreen-get-variable.patch
>> +0017-make-error-hideable.patch
> 





More information about the pve-devel mailing list