From ef64917a9091a9a12e8245099d6b0b0fbac2f6e5 Mon Sep 17 00:00:00 2001 From: Samuel Mannehed Date: Wed, 9 Jan 2019 13:20:29 +0100 Subject: Only disable scrollbars on Android and iOS Previously scrollbars were disabled on all touch devices. This meant that they were disabled on Windows when touch was detected. Windows does in fact have useful scrollbars even in touch mode. Fixes Issue #1172 --- app/ui.js | 7 ++++--- core/util/browser.js | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/ui.js b/app/ui.js index 4e4aec7..a045bca 100644 --- a/app/ui.js +++ b/app/ui.js @@ -8,7 +8,8 @@ import * as Log from '../core/util/logging.js'; import _, { l10n } from './localization.js'; -import { isTouchDevice, isSafari, 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 KeyTable from "../core/input/keysym.js"; import keysyms from "../core/input/keysymdef.js"; @@ -1243,8 +1244,8 @@ const UI = { // Can't be clipping if viewport is scaled to fit UI.forceSetting('view_clip', false); UI.rfb.clipViewport = false; - } else if (isTouchDevice) { - // Touch devices usually have shit scrollbars + } else if (isIOS() || isAndroid()) { + // iOS and Android usually have shit scrollbars UI.forceSetting('view_clip', true); UI.rfb.clipViewport = true; } else { diff --git a/core/util/browser.js b/core/util/browser.js index 088997b..026a31a 100644 --- a/core/util/browser.js +++ b/core/util/browser.js @@ -64,6 +64,10 @@ export function isIOS() { !!(/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); -- cgit v1.2.1