Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ.M <me@mynetx.net>2013-04-28 22:05:35 +0400
committerJ.M <me@mynetx.net>2013-04-28 22:05:35 +0400
commit0b63f7e6c811282e2651d7b5be4400ebc4c84fe7 (patch)
tree18e460f666b8bfe7029f0c0deca49c85d6339e92 /js/keyhandler.js
parent32ccd01b64af7e4d951b480beda5a6891b3aece8 (diff)
Fix bug #3799 [interface] Incorrect select field change on ctrl key navigation in Firefox
Diffstat (limited to 'js/keyhandler.js')
-rw-r--r--js/keyhandler.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/js/keyhandler.js b/js/keyhandler.js
index 8f9ccec527..6b9933d427 100644
--- a/js/keyhandler.js
+++ b/js/keyhandler.js
@@ -6,19 +6,19 @@
*/
AJAX.registerTeardown('keyhandler.js', function() {
- $('#table_columns').die('keydown');
- $('table.insertRowTable').die('keydown');
+ $('#table_columns').die('keydown keyup');
+ $('table.insertRowTable').die('keydown keyup');
});
AJAX.registerOnload('keyhandler.js', function() {
- $('#table_columns').live('keydown', function(event) {
+ $('#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);
});
});
-
+console.log("cd");
function onKeyDownArrowsHandler(e)
{
e = e||window.event;
@@ -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();
}