我有一个触摸屏,在我的Notepad ++中启用拖放是不方便的.无论如何我从未使用过拖放.但我找不到如何禁用它,这有可能吗?我说的是文本拖放,我在设置中找到的唯一选项与标签栏拖放有关.
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;
}
Run Code Online (Sandbox Code Playgroud)
因此,将代码块结果注释为此
/*
if (inDragDrop == ddInitial) {
if (DragThreshold(ptMouseLast, pt)) {
SetMouseCapture(false);
FineTickerCancel(tickScroll);
SetDragPosition(movePos);
CopySelectionRange(&drag);
StartDrag();
}
return;
}
*/
Run Code Online (Sandbox Code Playgroud)
通过源代码中的这一更改,构建新的SciLexer.dll
. 您可以保留 dll 的先前版本作为备份,以防您想切换回拖放功能。
但是,如果您不是Notepad++
从源代码构建并且更喜欢通过可执行文件安装,那么请记下您的当前版本Notepad++
并下载相同的 scintilla 源代码。
因此,如果您的Notepad++
版本是v7.xx,那么指向 scintilla 源的 URL 将是:
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x/scintilla
Run Code Online (Sandbox Code Playgroud)
要下载单个文件夹或目录,请按照此操作,或仅使用此链接下载:
https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x/scintilla
Run Code Online (Sandbox Code Playgroud)
(基于这里的答案)
Editor.cxx
如前所述修改并按照此处指定的指南构建新的 dll:
https://github.com/notepad-plus-plus/notepad-plus-plus/tree/v7.x.x
Run Code Online (Sandbox Code Playgroud)
注意: 将 v7.xx 替换为您的 NPP 版本
更新:上述方法不适用于 NPP 版本 >= v7.3.3,因为此"Fix CIA Hacking Notepad++"
问题已在v7.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
Run Code Online (Sandbox Code Playgroud)
这使分叉存储库的主分支与父存储库保持同步。它还通过合并分支存储库的主分支来保持分支存储库的功能分支(包含更改)更新。
如果Notepad++
社区决定添加或调整此功能,则此应用程序生成的拉取请求应该会导致合并冲突。
注意:如果您在运行Notepad++
源代码的发布配置版本时遇到任何与证书相关的问题,请参阅此。
归档时间: |
|
查看次数: |
2217 次 |
最近记录: |