summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Gordon <snorkeyg@gmail.com>2011-08-23 10:26:04 +1000
committerJoel Martin <github@martintribe.org>2011-09-08 08:20:38 -0500
commit7825b9ee9f2d4347b8091df34fdb71c1fe319920 (patch)
tree53f96971380695847375f24f9504b811565d8d98
parent46c621175cb0ac5433d16ce254e2128a0ada09ba (diff)
downloadnovnc-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.js39
-rw-r--r--vnc.html5
-rw-r--r--vnc_auto.html2
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" />');
+}
diff --git a/vnc.html b/vnc.html
index e8dd0e2..f94dd61 100644
--- a/vnc.html
+++ b/vnc.html
@@ -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>