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);