Отключить замену клавиш Ctrl + со стрелками в phpMyAdmin - PullRequest
0 голосов
/ 11 июля 2020

В phpMyAdmin использование клавиши Control в сочетании с клавишами со стрелками (например, ctrl + right, ctrl + left, ctrl + shift + right и ctrl + shift + left) при редактировании ячейки в таблице вызывает курсор для перехода в другую ячейку.

Такое поведение может сильно раздражать при наборе текста, поскольку большинство людей привыкли использовать эти комбинации клавиш для перемещения между и / или выбора слов в тексте и обычно используют их, не задумываясь об этом.

В последних версиях phpMyAdmin нет возможности отключить эту «функцию». В более старых версиях был параметр конфигурации $ cfg ['CtrlArrowsMoving'] = false, который отключил бы его, но этот параметр больше не поддерживается.

Клавиша Alt делает то же самое, поэтому на самом деле нет причин чтобы клавиша ctrl использовалась таким образом, если пользователь на самом деле этого не хочет.

Мне нравится phpMyAdmin, но после многих лет инстинктивного нажатия ctrl + shift + left для выбора слова только для запоминания это не работает, Я решил поискать код и выяснить, как его отключить.

Я хотел опубликовать решение на случай, если кто-то еще этого захочет. Я использую phpMyAdmin версии 5.0.2 и не знаю, используют ли другие версии для этого тот же код, но, надеюсь, они достаточно похожи, чтобы это все еще применялось.

1 Ответ

0 голосов
/ 11 июля 2020

Единственная сложность - найти код. В папке phpMyAdmin \ js \ есть файл с именем keyhandler. js, в котором есть код для этого типа поведения, но он не влияет на него.

Вместо этого код находится в файле makegrid . js в phpMyAdmin \ js \. Функция находится в строке 1968:

function handleCtrlNavigation (e) {
    if ((e.ctrlKey && e.which === 38) || (e.altKey && e.which === 38)) {
        g.moveUp(e);
    } else if ((e.ctrlKey && e.which === 40)  || (e.altKey && e.which === 40)) {
        g.moveDown(e);
    } else if ((e.ctrlKey && e.which === 37) || (e.altKey && e.which === 37))
        g.moveLeft(e);
    } else if ((e.ctrlKey && e.which === 39)  || (e.altKey && e.which === 39)) {
        g.moveRight(e);
    }
}

Просто удалите части, которые относятся к клавише ctrl (или замените всю функцию на это):

function handleCtrlNavigation (e) {
    if ((e.altKey && e.which === 38)) {
        g.moveUp(e);
    } else if ((e.altKey && e.which === 40)) {
        g.moveDown(e);
    } else if ((e.altKey && e.which === 37)) {
        g.moveLeft(e);
    } else if ((e.altKey && e.which === 39)) {
        g.moveRight(e);
    }
}

Итак, вы можете использовать ctrl обычным способом, но вы все равно можете использовать клавишу alt для перемещения от ячейки к ячейке.

Если вы хотите избавиться от функций ctrl-key и alt-key, просто добавьте return оператор после объявления функции:

function handleCtrlNavigation (e) {
    return;
    ((e.ctrlKey && e.which === 38) || (e.altKey && e.which === 38)) {...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...