GUACAMOLE-2079: Fix keyboard lock/unlock in fullscreen mode.
This commit is contained in:
1 file changed
+16
-3
@@ -36,9 +36,9 @@ angular.module('client').factory('guacFullscreen', ['$injector',
|
|||||||
service.setFullscreenMode = function setFullscreenMode(state) {
|
service.setFullscreenMode = function setFullscreenMode(state) {
|
||||||
if (document.fullscreenEnabled) {
|
if (document.fullscreenEnabled) {
|
||||||
if (state && !service.isInFullscreenMode())
|
if (state && !service.isInFullscreenMode())
|
||||||
document.documentElement.requestFullscreen().then(navigator.keyboard.lock());
|
document.documentElement.requestFullscreen();
|
||||||
else if (!state && service.isInFullscreenMode())
|
else if (!state && service.isInFullscreenMode())
|
||||||
document.exitFullscreen().then(navigator.keyboard.unlock());
|
document.exitFullscreen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,6 +50,19 @@ angular.module('client').factory('guacFullscreen', ['$injector',
|
|||||||
service.setFullscreenMode(false);
|
service.setFullscreenMode(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the browser supports keyboard lock, lock the keyboard when entering
|
||||||
|
// fullscreen mode and unlock it when exiting fullscreen mode.
|
||||||
|
if (navigator.keyboard?.lock) {
|
||||||
|
document.addEventListener('fullscreenchange', () => {
|
||||||
|
if (document.fullscreenElement) {
|
||||||
|
navigator.keyboard.lock();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
navigator.keyboard.unlock();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
return service;
|
return service;
|
||||||
|
|
||||||
}]);
|
}]);
|
||||||
Reference in new issue
Block a user