From 0beb9165f4f9bbd9e3c81aa40775d9329433fb14 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Mon, 23 Jan 2012 10:05:01 -0800 Subject: [PATCH] Experimental mobile-friendly keyboard layout. --- .../webapp/layouts/en-us-qwerty-mobile.xml | 308 ++++++++++++++++++ .../src/main/webapp/scripts/interface.js | 7 +- guacamole/src/main/webapp/styles/client.css | 4 + guacamole/src/main/webapp/styles/keyboard.css | 18 +- 4 files changed, 332 insertions(+), 5 deletions(-) create mode 100644 guacamole/src/main/webapp/layouts/en-us-qwerty-mobile.xml diff --git a/guacamole/src/main/webapp/layouts/en-us-qwerty-mobile.xml b/guacamole/src/main/webapp/layouts/en-us-qwerty-mobile.xml new file mode 100644 index 000000000..711531bd2 --- /dev/null +++ b/guacamole/src/main/webapp/layouts/en-us-qwerty-mobile.xml @@ -0,0 +1,308 @@ + + + + + + + + Tab + + + + q + 1 + Q + q + + + + w + 2 + W + w + + + + e + 3 + E + e + + + + r + 4 + R + r + + + + t + 5 + T + t + + + + y + 6 + Y + y + + + + u + 7 + U + u + + + + i + 8 + I + i + + + + o + 9 + O + o + + + + p + 0 + P + p + + + + [ + { + + + + ] + } + + + + Back + + + + + + + + ?123 + + + + a + # + A + a + + + + s + $ + S + s + + + + d + % + D + d + + + + f + & + F + f + + + + g + * + G + g + + + + h + - + H + h + + + + j + + + J + j + + + + k + ( + K + k + + + + l + ) + L + l + + + + ; + : + + + + ' + " + + + + Enter + + + + + + + + Shift + + + + z + < + Z + z + + + + x + > + X + x + + + + c + = + C + c + + + + v + ' + V + v + + + + b + ; + B + b + + + + n + , + N + n + + + + m + . + M + m + + + + , + ! + ! + ! + + + + . + ? + ? + ? + + + + / + ? + + + + Shift + + + + + + + + Ctrl + + + + Super + + + + Alt + + + + + + + + Alt + + + + Menu + + + + Ctrl + + + diff --git a/guacamole/src/main/webapp/scripts/interface.js b/guacamole/src/main/webapp/scripts/interface.js index 55d4f9e1c..e18f524b3 100644 --- a/guacamole/src/main/webapp/scripts/interface.js +++ b/guacamole/src/main/webapp/scripts/interface.js @@ -233,8 +233,13 @@ var GuacamoleUI = { window.location.reload(); }; + GuacamoleUI.display.onclick = function(e) { + e.preventDefault(); + return false; + }; + // On-screen keyboard - GuacamoleUI.keyboard = new Guacamole.OnScreenKeyboard("layouts/en-us-qwerty.xml"); + GuacamoleUI.keyboard = new Guacamole.OnScreenKeyboard("layouts/en-us-qwerty-mobile.xml"); GuacamoleUI.containers.keyboard.appendChild(GuacamoleUI.keyboard.getElement()); // Function for automatically updating keyboard size diff --git a/guacamole/src/main/webapp/styles/client.css b/guacamole/src/main/webapp/styles/client.css index f853effa3..d2a79f354 100644 --- a/guacamole/src/main/webapp/styles/client.css +++ b/guacamole/src/main/webapp/styles/client.css @@ -24,6 +24,10 @@ body { margin: 0; } +* { + -webkit-tap-highlight-color: rgba(0,0,0,0); +} + div.errorDialogOuter { display: table; height: 100%; diff --git a/guacamole/src/main/webapp/styles/keyboard.css b/guacamole/src/main/webapp/styles/keyboard.css index 1d007448f..657317925 100644 --- a/guacamole/src/main/webapp/styles/keyboard.css +++ b/guacamole/src/main/webapp/styles/keyboard.css @@ -70,17 +70,20 @@ } .guac-keyboard .guac-keyboard-key:hover .guac-keyboard-cap { - background: #666; - border-color: #666; cursor: pointer; } -.guac-keyboard .guac-keyboard-key.pressed:hover .guac-keyboard-cap { +.guac-keyboard .guac-keyboard-key.highlight .guac-keyboard-cap { + background: #666; + border-color: #666; +} + +.guac-keyboard .guac-keyboard-key.guac-keyboard-pressed .guac-keyboard-cap { background: #822; border-color: #D44; } -.guac-keyboard .guac-keyboard-key.active:hover .guac-keyboard-cap { +.guac-keyboard .guac-keyboard-key.guac-keyboard-active .guac-keyboard-cap { background: #882; border-color: #DD4; } @@ -103,6 +106,9 @@ .guac-keyboard:not(.guac-keyboard-modifier-caps) .guac-keyboard-cap.guac-keyboard-requires-caps, +.guac-keyboard:not(.guac-keyboard-modifier-numsym) +.guac-keyboard-cap.guac-keyboard-requires-numsym, + .guac-keyboard:not(.guac-keyboard-modifier-shift) .guac-keyboard-cap.guac-keyboard-requires-shift, @@ -112,6 +118,10 @@ .guac-keyboard-key.guac-keyboard-uses-shift .guac-keyboard-cap:not(.guac-keyboard-requires-shift), +.guac-keyboard.guac-keyboard-modifier-numsym +.guac-keyboard-key.guac-keyboard-uses-numsym +.guac-keyboard-cap:not(.guac-keyboard-requires-numsym), + .guac-keyboard.guac-keyboard-modifier-caps .guac-keyboard-key.guac-keyboard-uses-caps .guac-keyboard-cap:not(.guac-keyboard-requires-caps) {