diff options
author | Chris Gordon <snorkeyg@gmail.com> | 2011-08-23 10:26:04 +1000 |
---|---|---|
committer | Joel Martin <github@martintribe.org> | 2011-09-08 08:20:38 -0500 |
commit | 7825b9ee9f2d4347b8091df34fdb71c1fe319920 (patch) | |
tree | 53f96971380695847375f24f9504b811565d8d98 | |
parent | 46c621175cb0ac5433d16ce254e2128a0ada09ba (diff) | |
download | novnc-7825b9ee9f2d4347b8091df34fdb71c1fe319920.tar.gz |
Added support for native iOS and Android keyboards.
Tested with Safari on iPad for iOS and Asus Transformer for Android.
-rw-r--r-- | include/ui.js | 39 | ||||
-rw-r--r-- | vnc.html | 5 | ||||
-rw-r--r-- | vnc_auto.html | 2 |
3 files changed, 43 insertions, 3 deletions
diff --git a/include/ui.js b/include/ui.js index f3388eb..fa2bd28 100644 --- a/include/ui.js +++ b/include/ui.js @@ -64,6 +64,7 @@ load: function(target) { html += ' id="VNC_mouse_button2" value="M" onclick="UI.setMouseButton(2);"'; html += ' ><input type="button" class="VNC_status_button"'; html += ' id="VNC_mouse_button4" value="R" onclick="UI.setMouseButton(4);">'; + html += ' <input type="button" id="showKeyboard" onclick="showkeyboard()" value="Keyboard" />'; html += ' </span></nobr></div></td>'; // Settings drop-down menu @@ -122,6 +123,7 @@ load: function(target) { html += ' <canvas id="VNC_canvas" width="640px" height="20px">'; html += ' Canvas not supported.'; html += ' </canvas>'; + html += '<input id="keyboardinput" style="border:none;" type="text" onKeyDown="onKeyDown(event);"/>'; html += '</div>'; html += '<br><br>'; html += '<div id="VNC_clipboard">'; @@ -472,3 +474,40 @@ clipSend: function() { } }; + +/* + Functions for use of mobile devices native keyboards + Added by Chris Gordon + http://www.chrisgordon.com.au + Date: 23/08/2011 +*/ + +function showkeyboard(){ +//Get Current Scroll Position of Browser +var scrollx = (document.all)?document.body.scrollLeft:window.pageXOffset; +var scrolly = (document.all)?document.body.scrollTop:window.pageYOffset; + +//Stop browser zooming on textbox when focus is set. +zoomDisable(); + +//Focus on hidden textbox to bring up native keyboard. +document.getElementById('keyboardinput').focus(); + +//Set scroll position of browser to the same position it was prior to focus. +scroll(scrollx,scrolly); + +//Renable user zooming. +zoomEnable(); +} + +function zoomDisable(){ + //Change viewport meta data to disable zooming. + $('head meta[name=viewport]').remove(); + $('head').prepend('<meta name="viewport" content="user-scalable=0" />'); +} + +function zoomEnable(){ + //Change viewport meta data to enable user zooming. + $('head meta[name=viewport]').remove(); + $('head').prepend('<meta name="viewport" content="user-scalable=1" />'); +} @@ -10,15 +10,16 @@ <meta http-equiv="X-UA-Compatible" content="chrome=1"> <link rel="stylesheet" href="include/plain.css"> <link rel="alternate stylesheet" href="include/black.css" TITLE="Black"> + <!-- - <script type='text/javascript' + <script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> --> <script src="include/vnc.js"></script> <script src="include/ui.js"></script> </head> - <body> + <body onKeyDown="onKeyDown(event);"> <div id='vnc'>Loading</div> <script> diff --git a/vnc_auto.html b/vnc_auto.html index 10b1949..cfedec4 100644 --- a/vnc_auto.html +++ b/vnc_auto.html @@ -19,7 +19,7 @@ <script src="include/vnc.js"></script> </head> - <body style="margin: 0px;"> + <body style="margin: 0px;" onKeyDown="onKeyDown(event);"> <div id="VNC_screen"> <div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;"> <table border=0 width="100%"><tr> |