Merge pull request #1182 from novnc/scrollbarsfortouch
Enable scrollbars for all touch devices aside from Android and iOS
This commit is contained in:
commit
099c419996
14
app/ui.js
14
app/ui.js
|
@ -8,7 +8,8 @@
|
||||||
|
|
||||||
import * as Log from '../core/util/logging.js';
|
import * as Log from '../core/util/logging.js';
|
||||||
import _, { l10n } from './localization.js';
|
import _, { l10n } from './localization.js';
|
||||||
import { isTouchDevice, dragThreshold } from '../core/util/browser.js';
|
import { isTouchDevice, isSafari, isIOS, isAndroid, dragThreshold }
|
||||||
|
from '../core/util/browser.js';
|
||||||
import { setCapture, getPointerEvent } from '../core/util/events.js';
|
import { setCapture, getPointerEvent } from '../core/util/events.js';
|
||||||
import KeyTable from "../core/input/keysym.js";
|
import KeyTable from "../core/input/keysym.js";
|
||||||
import keysyms from "../core/input/keysymdef.js";
|
import keysyms from "../core/input/keysymdef.js";
|
||||||
|
@ -31,7 +32,6 @@ const UI = {
|
||||||
controlbarMouseDownClientY: 0,
|
controlbarMouseDownClientY: 0,
|
||||||
controlbarMouseDownOffsetY: 0,
|
controlbarMouseDownOffsetY: 0,
|
||||||
|
|
||||||
isSafari: false,
|
|
||||||
lastKeyboardinput: null,
|
lastKeyboardinput: null,
|
||||||
defaultKeyboardinputLen: 100,
|
defaultKeyboardinputLen: 100,
|
||||||
|
|
||||||
|
@ -56,10 +56,6 @@ const UI = {
|
||||||
// Render default UI and initialize settings menu
|
// Render default UI and initialize settings menu
|
||||||
start(callback) {
|
start(callback) {
|
||||||
|
|
||||||
// Setup global variables first
|
|
||||||
UI.isSafari = (navigator.userAgent.indexOf('Safari') !== -1 &&
|
|
||||||
navigator.userAgent.indexOf('Chrome') === -1);
|
|
||||||
|
|
||||||
UI.initSettings();
|
UI.initSettings();
|
||||||
|
|
||||||
// Translate the DOM
|
// Translate the DOM
|
||||||
|
@ -117,7 +113,7 @@ const UI = {
|
||||||
initFullscreen() {
|
initFullscreen() {
|
||||||
// Only show the button if fullscreen is properly supported
|
// Only show the button if fullscreen is properly supported
|
||||||
// * Safari doesn't support alphanumerical input while in fullscreen
|
// * Safari doesn't support alphanumerical input while in fullscreen
|
||||||
if (!UI.isSafari &&
|
if (!isSafari() &&
|
||||||
(document.documentElement.requestFullscreen ||
|
(document.documentElement.requestFullscreen ||
|
||||||
document.documentElement.mozRequestFullScreen ||
|
document.documentElement.mozRequestFullScreen ||
|
||||||
document.documentElement.webkitRequestFullscreen ||
|
document.documentElement.webkitRequestFullscreen ||
|
||||||
|
@ -1248,8 +1244,8 @@ const UI = {
|
||||||
// Can't be clipping if viewport is scaled to fit
|
// Can't be clipping if viewport is scaled to fit
|
||||||
UI.forceSetting('view_clip', false);
|
UI.forceSetting('view_clip', false);
|
||||||
UI.rfb.clipViewport = false;
|
UI.rfb.clipViewport = false;
|
||||||
} else if (isTouchDevice) {
|
} else if (isIOS() || isAndroid()) {
|
||||||
// Touch devices usually have shit scrollbars
|
// iOS and Android usually have shit scrollbars
|
||||||
UI.forceSetting('view_clip', true);
|
UI.forceSetting('view_clip', true);
|
||||||
UI.rfb.clipViewport = true;
|
UI.rfb.clipViewport = true;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -53,6 +53,26 @@ export function isMac() {
|
||||||
return navigator && !!(/mac/i).exec(navigator.platform);
|
return navigator && !!(/mac/i).exec(navigator.platform);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function isWindows() {
|
||||||
|
return navigator && !!(/win/i).exec(navigator.platform);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isIOS() {
|
||||||
|
return navigator &&
|
||||||
|
(!!(/ipad/i).exec(navigator.platform) ||
|
||||||
|
!!(/iphone/i).exec(navigator.platform) ||
|
||||||
|
!!(/ipod/i).exec(navigator.platform));
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isAndroid() {
|
||||||
|
return navigator && !!(/android/i).exec(navigator.userAgent);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function isSafari() {
|
||||||
|
return navigator && (navigator.userAgent.indexOf('Safari') !== -1 &&
|
||||||
|
navigator.userAgent.indexOf('Chrome') === -1);
|
||||||
|
}
|
||||||
|
|
||||||
export function isIE() {
|
export function isIE() {
|
||||||
return navigator && !!(/trident/i).exec(navigator.userAgent);
|
return navigator && !!(/trident/i).exec(navigator.userAgent);
|
||||||
}
|
}
|
||||||
|
@ -65,14 +85,3 @@ export function isFirefox() {
|
||||||
return navigator && !!(/firefox/i).exec(navigator.userAgent);
|
return navigator && !!(/firefox/i).exec(navigator.userAgent);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isWindows() {
|
|
||||||
return navigator && !!(/win/i).exec(navigator.platform);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function isIOS() {
|
|
||||||
return navigator &&
|
|
||||||
(!!(/ipad/i).exec(navigator.platform) ||
|
|
||||||
!!(/iphone/i).exec(navigator.platform) ||
|
|
||||||
!!(/ipod/i).exec(navigator.platform));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue