diff options
author | J.M <me@mynetx.net> | 2013-04-30 19:46:36 +0400 |
---|---|---|
committer | J.M <me@mynetx.net> | 2013-04-30 19:46:36 +0400 |
commit | fc62e1f9f63be4f0c458b8ec796f0c8023a2ea69 (patch) | |
tree | 7dc77e9bd324066d05f11ba71a892af7f5f476a1 /js/keyhandler.js | |
parent | cafb6fbd75a5b6f777c788ffa1b9558f5477176e (diff) | |
parent | 5dc0c7a2174e4236c9353513bed2283e0381325f (diff) |
Merge branch 'origin/QA_4_0'
Conflicts:
js/keyhandler.js
js/tbl_structure.js
Diffstat (limited to 'js/keyhandler.js')
-rw-r--r-- | js/keyhandler.js | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/js/keyhandler.js b/js/keyhandler.js index a1467e48cf..9a1b325427 100644 --- a/js/keyhandler.js +++ b/js/keyhandler.js @@ -5,16 +5,16 @@ * @param object event data */ -AJAX.registerTeardown('keyhandler.js', function () { - $('#table_columns').die('keydown'); - $('table.insertRowTable').die('keydown'); +AJAX.registerTeardown('keyhandler.js', function() { + $('#table_columns').die('keydown keyup'); + $('table.insertRowTable').die('keydown keyup'); }); -AJAX.registerOnload('keyhandler.js', function () { - $('#table_columns').live('keydown', function (event) { +AJAX.registerOnload('keyhandler.js', function() { + $('#table_columns').live('keydown keyup', function(event) { onKeyDownArrowsHandler(event.originalEvent); }); - $('table.insertRowTable').live('keydown', function (event) { + $('table.insertRowTable').live('keydown keyup', function(event) { onKeyDownArrowsHandler(event.originalEvent); }); }); @@ -28,7 +28,7 @@ function onKeyDownArrowsHandler(e) } if (o.tagName != "TEXTAREA" && o.tagName != "INPUT" && o.tagName != "SELECT") { return; - } + }console.log(e); if (navigator.userAgent.toLowerCase().indexOf('applewebkit/') != -1) { if (e.ctrlKey || e.shiftKey || !e.altKey) { return; @@ -72,6 +72,13 @@ function onKeyDownArrowsHandler(e) return; } + var is_firefox = navigator.userAgent.toLowerCase().indexOf("firefox/") > -1; + + // restore selected index, bug #3799 + if (is_firefox && e.type == "keyup") { + o.selectedIndex = window["selectedIndex_" + o.id]; + } + var id = "field_" + y + "_" + x; nO = document.getElementById(id); if (! nO) { @@ -83,7 +90,12 @@ function onKeyDownArrowsHandler(e) if (! nO) { return; } - nO.focus(); + if (e.type == "keydown") { + nO.focus(); + if (is_firefox) { + window["selectedIndex_" + nO.id] = nO.selectedIndex; + } + } if (nO.tagName != 'SELECT') { nO.select(); } |