Как отключить перетаскивание текста в Notepad++
У меня сенсорный экран, и мне неудобно иметь возможность перетаскивания в Notepad++ для меня. Я никогда не использовал drag-drop. Но я не могу найти, как это отключить, это вообще возможно? Я говорю о перетаскивании текста, единственный параметр, который я мог найти в настройках, связан с перетаскиванием панели вкладок.
0 ответов
TL;DR: сборкаNotepad++
от сюда
Примечание: этот вопрос задавали здесь и здесь. Существует также запрос на повышение здесь, который остается открытым..
Запрос на улучшение был закрыт, и вот причина, указанная разработчиком здесь:
За исключением того, что Scintilla делает его необязательным, он не может поддерживаться в Notepad++. Я рекомендую вам сделать запрос функции в проекте Scintilla
Если кто-то строит Notepad++
из источника, я предлагаю следующие обходные пути.
Компонент редактора Scintilla в Notepad++
фактически отвечает за функцию перетаскивания (это можно подтвердить с помощью SciTE). Таким образом, один из способов отключить эту функцию - изменить исходный код, используемый для созданияSciLexer.dll
здесь.
После отладки Notepad++
в Visual Studio, я обнаружил, что эта функция ButtonMoveWithModifiers
под Editor.cxx
отвечает за функцию перетаскивания. В частности, этот фрагмент кода:
if (inDragDrop == ddInitial) {
if (DragThreshold(ptMouseLast, pt)) {
SetMouseCapture(false);
FineTickerCancel(tickScroll);
SetDragPosition(movePos);
CopySelectionRange(&drag);
StartDrag();
}
return;
}
Итак, комментируя результаты блока кода к этому
/*
if (inDragDrop == ddInitial) {
if (DragThreshold(ptMouseLast, pt)) {
SetMouseCapture(false);
FineTickerCancel(tickScroll);
SetDragPosition(movePos);
CopySelectionRange(&drag);
StartDrag();
}
return;
}
*/
С одним этим изменением в исходном коде создайте новый SciLexer.dll
. Вы можете сохранить предыдущую сборку dll в качестве резервной на тот случай, если вы захотите вернуться к функции перетаскивания.
Однако, если вы не строите Notepad++
из исходного кода и предпочитаете установку через исполняемый файл, затем запишите текущую версию вашего Notepad++
и загрузите исходный код scintilla для того же.
Итак, если ваш Notepad++
версия v7.xx, тогда URL, указывающий на источник scintilla, будет:
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x/scintilla
Для того, чтобы загрузить одну папку или каталог, следуйте этим, или просто скачать по этой ссылке:
https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x/scintilla
(на основе ответа здесь)
Измените Editor.cxx
как упоминалось ранее, и создайте новую dll в соответствии с указанным здесь руководством:
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x
Примечание: замените v7.xx своей версией NPP.
Обновление: указанный выше метод не работает для версий выпуска АЭС> = v7.3.3, из-за этого "Fix CIA Hacking Notepad++"
проблема исправлена в версии 7.3.3 и выше. Это потому, чтоSciLexer.dll
имеет цифровую подпись автора проекта NPP, поэтому, если dll подделана, то Notepad++
будет жаловаться, говоря:
Ошибка проверки библиотеки - Ошибка проверки подлинности: подпись или сертификат подписи не распознаются.
Вот разветвленный репозиторий с внесенными за вас изменениями, просто соберите Notepad++ отсюда.
(Он должен автоматически синхронизироваться с родительским репозиторием из-за этого приложения, однако, если это не связано с каким-либо конфликтом, я синхронизирую его вручную, как указано здесь)
Примечание. Для синхронизации указанного выше разветвленного репозитория с родительским репозиторием использовалось приложение Pull Github. Вотpull.yml
используется для настройки разветвленного репозитория:
version: "1"
rules:
- base: feature
upstream: master
mergeMethod: merge
- base: master
upstream: notepad-plus-plus:master
mergeMethod: hardreset
Это позволяет поддерживать главную ветвь разветвленного репозитория в актуальном состоянии с родительским репозиторием. Он также поддерживает обновление функциональной ветви разветвленного репозитория (который содержит изменения) через главную ветвь разветвленного репозитория путем их слияния.
Если Notepad++
Сообщество когда-либо решает добавить или настроить эту функцию, запрос на вытягивание, созданный этим приложением, должен привести к конфликту слияния.
Примечание. Если вы столкнулись с какими-либо проблемами, связанными с сертификатом, при запуске версии конфигурации выпускаNotepad++
из источника, обратитесь к этому.