如何禁用Notepad ++中的文本拖放

exe*_*ook 12 notepad++

我有一个触摸屏,在我的Notepad ++中启用拖放是不方便的.无论如何我从未使用过拖放.但我找不到如何禁用它,这有可能吗?我说的是文本拖放,我在设置中找到的唯一选项与标签栏拖放有关.

Sau*_*ari 5

TL;DR:Notepad++这里构建

注意:这里这里都问这个问题。这里还有一个增强请求它仍然是开放的。.

增强请求已关闭,以下是开发人员在此处说明的原因:

除了 Scintilla 使它成为可选之外,Notepad++ 不支持它。我鼓励你在Scintilla 项目中完成功能请求

如果是Notepad++从源代码构建,那么我建议采用以下解决方法。

Scintilla 中的编辑器组件Notepad++实际上负责拖放功能(这可以通过使用SciTE来确认)。因此,禁用此功能的一种方法是修改用于构建SciLexer.dll 此处的源代码。

在调试Notepad++在Visual Studio项目中,我发现这个功能ButtonMoveWithModifiersEditor.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++源代码的发布配置版本时遇到任何与证书相关的问题,请参阅