From 21d3e4550baf24f0cdee5b52620c7bf52f201fe5 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 19 Apr 2015 22:19:09 -0700 Subject: [PATCH] GUAC-1053: Unless overridden, default to "text" input mode if platform likely lacks a physical keyboard. --- .../app/settings/services/preferenceService.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/guacamole/src/main/webapp/app/settings/services/preferenceService.js b/guacamole/src/main/webapp/app/settings/services/preferenceService.js index ab946908b..3f2d79fd3 100644 --- a/guacamole/src/main/webapp/app/settings/services/preferenceService.js +++ b/guacamole/src/main/webapp/app/settings/services/preferenceService.js @@ -58,7 +58,7 @@ angular.module('settings').factory('preferenceService', ['$injector', * * @type String */ - inputMethod : 'none' + inputMethod : null }; @@ -88,6 +88,17 @@ angular.module('settings').factory('preferenceService', ['$injector', } catch (ignore) {} + // Choose reasonable default input method based on best-guess at platform + if (service.preferences.inputMethod === null) { + + // Use text input by default if platform likely lacks physical keyboard + if (/android|ipad|iphone/i.test(navigator.userAgent)) + service.preferences.inputMethod = 'text'; + else + service.preferences.inputMethod = 'none'; + + } + // Persist settings when window is unloaded $window.addEventListener('unload', service.save);