OSDN Git Service

Version 0.6.214, bug fixes X.KB.
[pettanr/clientJs.git] / 0.6.x / js / 11_hid / 01_KB.js
index 26d1544..9d9646e 100644 (file)
@@ -42,7 +42,7 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                        var keyCode = e.keyCode,  // keyCode says something about the actual keyboard key the user pressed\r
                                                chrCode = e.charCode, // while charCode gives the ASCII value of the resulting character\r
                                                cb      = X_CALLBACK_NONE,\r
-                                               special, is10Key, _keyCode;\r
+                                               special, _keyCode;\r
                                        \r
                                        console.log( e.type + ' > keyCode:' + keyCode + ' chrCode:' + chrCode );\r
                                        \r
@@ -66,15 +66,15 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                                };\r
                                                                \r
                                                                cb = this[ 'dispatch' ]( {\r
-                                                                       type     : 'keydown',\r
-                                                                       keyCode  : keyCode,\r
-                                                                       charCode : chrCode,\r
-                                                                       keyName  : X_Type_isString( special ) ? special : '',\r
-                                                                       is10key  : !!is10Key,\r
-                                                                       shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
-                                                                       ctrlKey  : !!X_KB_DOWN_KEYS[ 17 ],\r
-                                                                       altKey   : !!X_KB_DOWN_KEYS[ 18 ],\r
-                                                                       metaKey  : !!X_KB_DOWN_KEYS[ 224 ]\r
+                                                                       type      : 'keydown',\r
+                                                                       keyCode   : keyCode,\r
+                                                                       charCode  : chrCode,\r
+                                                                       'keyName' : X_Type_isString( special ) ? special : '',\r
+                                                                       'is10key' : !!X_KB_lastIs10Key,\r
+                                                                       shiftKey  : !!X_KB_DOWN_KEYS[ 16 ],\r
+                                                                       ctrlKey   : !!X_KB_DOWN_KEYS[ 17 ],\r
+                                                                       altKey    : !!X_KB_DOWN_KEYS[ 18 ],\r
+                                                                       metaKey   : !!X_KB_DOWN_KEYS[ 224 ]\r
                                                                } );\r
                                                                \r
                                                                if( cb & X_CALLBACK_PREVENT_DEFAULT ){\r
@@ -92,29 +92,31 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                        \r
                                                case 'keypress' :\r
                                                        // keydown 側で発火しているものは再び発火しない\r
-                                                       console.log( 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) );\r
+                                                       \r
                                                        if( X_KB_DOWN_KEYS[ chrCode ] ){\r
                                                                return X_KB_CANCELED[ chrCode ] ? X_CALLBACK_PREVENT_DEFAULT : cb;\r
                                                        } else\r
                                                        if( keyCode === 32 ){\r
-                                                               charCode = 32;\r
+                                                               chrCode = 32;\r
                                                        };\r
 \r
                                                        if( 32 <= chrCode && chrCode <= 126 ){\r
                                                                X_KB_TRANSFOEM[ X_KB_lastKeyCode ] = chrCode;\r
                                                                \r
                                                                cb = this[ 'dispatch' ]( {\r
-                                                                       type     : 'keydown',\r
-                                                                       keyCode  : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,\r
-                                                                       charCode : chrCode,\r
-                                                                       is10key  : X_KB_lastIs10Key,\r
-                                                                       shiftKey : !!X_KB_DOWN_KEYS[ 16 ],\r
-                                                                       ctrlKey  : !!X_KB_DOWN_KEYS[ 17 ],\r
-                                                                       altKey   : !!X_KB_DOWN_KEYS[ 18 ],\r
-                                                                       metaKey  : !!X_KB_DOWN_KEYS[ 224 ]\r
+                                                                       type      : 'keydown',\r
+                                                                       keyCode   : X_KB_lastIs10Key ? X_KB_lastKeyCode : 0,\r
+                                                                       charCode  : chrCode,\r
+                                                                       'is10key' : X_KB_lastIs10Key,\r
+                                                                       shiftKey  : !!X_KB_DOWN_KEYS[ 16 ],\r
+                                                                       ctrlKey   : !!X_KB_DOWN_KEYS[ 17 ],\r
+                                                                       altKey    : !!X_KB_DOWN_KEYS[ 18 ],\r
+                                                                       metaKey   : !!X_KB_DOWN_KEYS[ 224 ]\r
                                                                } );\r
                                                                \r
-                                                               X_KB_lastIs10Key = true;\r
+                                                               X_KB_lastIs10Key = false;\r
+                                                               \r
+                                                               console.log( X_KB_lastKeyCode + 'keypress : chrCode:' + chrCode + ' down:' + X_KB_DOWN_KEYS[ chrCode ] + ( X_KB_CANCELED[ chrCode ] ? ' Cancel!' : '' ) );\r
                                                        };\r
                                                        return cb;\r
                                                        \r
@@ -125,41 +127,48 @@ var X_KB_SPECIALS = eval( // IE5- 対策
                                                \r
                                                        if( ( special = X_KB_SPECIALS[ keyCode ] ) && ( !X_KB_DOWN_KEYS[ keyCode ] && !X_KB_DOWN_KEYS[ special ] ) ){\r
                                                                cb |= this[ 'dispatch' ]( {\r
-                                                                       type      : 'keydown',\r
-                                                                       keyCode   : keyCode,\r
-                                                                       charCode  : 0,\r
-                                                                       keyName   : special,\r
-                                                                       is10key   : false,\r
-                                                                       isVirtual : true,\r
-                                                                       shiftKey  : !!X_KB_DOWN_KEYS[ 16 ],\r
-                                                                       ctrlKey   : !!X_KB_DOWN_KEYS[ 17 ],\r
-                                                                       altKey    : !!X_KB_DOWN_KEYS[ 18 ],\r
-                                                                       metaKey   : !!X_KB_DOWN_KEYS[ 224 ]\r
+                                                                       type        : 'keydown',\r
+                                                                       keyCode     : keyCode,\r
+                                                                       charCode    : 0,\r
+                                                                       'keyName'   : special,\r
+                                                                       'is10key'   : false,\r
+                                                                       'isVirtual' : true,\r
+                                                                       shiftKey    : !!X_KB_DOWN_KEYS[ 16 ],\r
+                                                                       ctrlKey     : !!X_KB_DOWN_KEYS[ 17 ],\r
+                                                                       altKey      : !!X_KB_DOWN_KEYS[ 18 ],\r
+                                                                       metaKey     : !!X_KB_DOWN_KEYS[ 224 ]\r
                                                                } );\r
                                                        };\r
                                                \r
                                                        if( X_KB_DOWN_KEYS[ keyCode ] ) delete X_KB_DOWN_KEYS[ keyCode ];\r
                                                        if( X_KB_CANCELED[ keyCode ]  ) delete X_KB_CANCELED[ keyCode ];\r
                                                        \r
-                                                       chrCode = 0;\r
+                                                       \r
                                                        if( !special ){\r
                                                                // keyCode から charCode を復帰する\r
                                                                chrCode = X_KB_TRANSFOEM[ keyCode ];\r
                                                                if( !chrCode ) return cb;\r
                                                                delete X_KB_TRANSFOEM[ keyCode ];\r
+                                                       } else\r
+                                                       if( 42 <= special ){\r
+                                                               chrCode = special; // ie8で必要... Firefox でもテンキーの+-*/ で必要...\r
+                                                       } else {\r
+                                                               chrCode = 0;\r
                                                        };\r
-                                               \r
+                                                       \r
+                                                       console.log( keyCode + ' keyup ' + chrCode );\r
+                                                       \r
                                                        cb |= this[ 'dispatch' ]( {\r
-                                                               type     : 'keyup',\r
-                                                               keyCode  : keyCode,\r
-                                                               charCode : chrCode,\r
-                                                               keyName  : X_Type_isString( special ) ? special : '',\r
-                                                               shiftKey : X_KB_DOWN_KEYS[ 16 ],\r
-                                                               ctrlKey  : X_KB_DOWN_KEYS[ 17 ],\r
-                                                               altKey   : X_KB_DOWN_KEYS[ 18 ],\r
-                                                               metaKey  : X_KB_DOWN_KEYS[ 224 ]\r
+                                                               type      : 'keyup',\r
+                                                               keyCode   : keyCode,\r
+                                                               charCode  : chrCode,\r
+                                                               'keyName' : X_Type_isString( special ) ? special : '',\r
+                                                               shiftKey  : X_KB_DOWN_KEYS[ 16 ],\r
+                                                               ctrlKey   : X_KB_DOWN_KEYS[ 17 ],\r
+                                                               altKey    : X_KB_DOWN_KEYS[ 18 ],\r
+                                                               metaKey   : X_KB_DOWN_KEYS[ 224 ]\r
                                                        } );\r
-\r
+                                                       \r
                                                        return cb;\r
                                                \r
                                                case X_EVENT_VIEW_ACTIVATE :\r