Treat Meta key same as Ctrl (bug #3599405)

This commit is contained in:
Jakub Vrana 2013-01-09 17:38:53 -08:00
parent 8bf02f2ce1
commit b5ad37ff2b
5 changed files with 21 additions and 9 deletions

View file

@ -1,2 +1,2 @@
<?php
$VERSION = "3.6.2";
$VERSION = "3.6.3-dev";

View file

@ -81,7 +81,7 @@ function loginDriver(driver) {
* @return boolean
*/
function textareaKeydown(target, event) {
if (!event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey) {
if (!event.shiftKey && !event.altKey && !isCtrl(event)) {
if (event.keyCode == 9) { // 9 - Tab
// inspired by http://pallieter.org/Projects/insertTab/
if (target.setSelectionRange) {

View file

@ -293,6 +293,15 @@ function selectSearch(name) {
}
/** Check if Ctrl key (Command key on Mac) was pressed
* @param KeyboardEvent|MouseEvent
* @return boolean
*/
function isCtrl(event) {
return (event.ctrlKey || event.metaKey) && !event.altKey; // shiftKey allowed
}
/** Send form by Ctrl+Enter on <select> and <textarea>
* @param KeyboardEvent
@ -301,7 +310,7 @@ function selectSearch(name) {
*/
function bodyKeydown(event, button) {
var target = event.target || event.srcElement;
if (event.ctrlKey && (event.keyCode == 13 || event.keyCode == 10) && !event.altKey && !event.metaKey && /select|textarea|input/i.test(target.tagName)) { // 13|10 - Enter, shiftKey allowed
if (isCtrl(event) && (event.keyCode == 13 || event.keyCode == 10) && /select|textarea|input/i.test(target.tagName)) { // 13|10 - Enter
target.blur();
if (button) {
target.form[button].click();
@ -318,10 +327,10 @@ function bodyKeydown(event, button) {
*/
function bodyClick(event) {
var target = event.target || event.srcElement;
if ((event.ctrlKey || event.shiftKey) && target.type == 'submit' && /input/i.test(target.tagName)) {
if ((isCtrl(event) || event.shiftKey) && target.type == 'submit' && /input/i.test(target.tagName)) {
target.form.target = '_blank';
setTimeout(function () {
// if (event.ctrlKey) { focus(); } doesn't work
// if (isCtrl(event)) { focus(); } doesn't work
target.form.target = '';
}, 0);
}
@ -334,7 +343,7 @@ function bodyClick(event) {
* @return boolean
*/
function editingKeydown(event) {
if ((event.keyCode == 40 || event.keyCode == 38) && event.ctrlKey && !event.altKey && !event.metaKey) { // 40 - Down, 38 - Up, shiftKey allowed
if ((event.keyCode == 40 || event.keyCode == 38) && isCtrl(event)) { // 40 - Down, 38 - Up
var target = event.target || event.srcElement;
var sibling = (event.keyCode == 40 ? 'nextSibling' : 'previousSibling');
var el = target.parentNode.parentNode[sibling];
@ -416,7 +425,7 @@ function ajaxSetHtml(url) {
*/
function selectClick(td, event, text, warning) {
var target = event.target || event.srcElement;
if (!event.ctrlKey || /input|textarea/i.test(td.firstChild.tagName) || /^a$/i.test(target.tagName)) {
if (!isCtrl(event) || /input|textarea/i.test(td.firstChild.tagName) || /^a$/i.test(target.tagName)) {
return;
}
if (warning) {
@ -429,7 +438,7 @@ function selectClick(td, event, text, warning) {
if (!event) {
event = window.event;
}
if (event.keyCode == 27 && !(event.ctrlKey || event.shiftKey || event.altKey || event.metaKey)) { // 27 - Esc
if (event.keyCode == 27 && !event.shiftKey && !event.altKey && !isCtrl(event)) { // 27 - Esc
td.innerHTML = original;
}
};

View file

@ -1,3 +1,6 @@
Adminer 3.6.3-dev:
Treat Meta key same as Ctrl
Adminer 3.6.2 (released 2012-12-21):
Edit values by Ctrl+click instead of double click
Don't select row on double click

View file

@ -8,7 +8,7 @@ function selectFieldChange(form) {
function whisperClick(event, field) {
var el = event.target || event.srcElement;
if (/^a$/i.test(el.tagName) && !(event.button || event.ctrlKey || event.shiftKey || event.altKey || event.metaKey)) {
if (/^a$/i.test(el.tagName) && !(event.button || event.shiftKey || event.altKey || isCtrl(event))) {
field.value = el.firstChild.data;
field.previousSibling.value = decodeURIComponent(el.href.replace(/.*=/, ''));
field.nextSibling.style.display = 'none';