Skip to content

[Feature] 同指令重复进入插件时 onPluginEnter 不触发,多标签插件无法切换到对应页面 #687

Description

@LowProfile666

我让AI总结的

问题描述

插件在后台运行时(正常 Esc 隐藏,未结束进程),用与上次进入相同的指令再次进入,插件窗口只是被前置聚焦,onPluginEnter 回调不会触发。

复现步骤

(以开发百宝箱插件为例,其他多标签插件同理):

  1. 在搜索框输入指令「json工具」进入插件
  2. 在插件内再打开另一个工具标签页(如 URL 编解码),此时停留在 URL 页
  3. 按 Esc 退出插件(插件隐藏到后台)
  4. 再次在搜索框输入「json工具」进入,或通过绑定该指令的快捷键进入
  5. 实际表现:插件窗口前置,但停留在上次的 URL 页,没有切换到指令对应的 JSON 工具页。

期望表现

重新进入时触发 onPluginEnter,由插件自行决定切换/激活对应页面。

推测原因

主进程对「再次进入」有一个跳过逻辑:上次进入是 text 类型指令、本次进入也是 text 类型且 featureCode 相同时,只聚焦窗口、不再派发 onPluginEnter,且该记录在插件正常隐藏到后台时不清除。

推测其本意是避免「Esc 回到搜索框后搜索词还在,重复回车导致 enter 重复执行」这类场景。但目前的判断似乎没有考虑两点:

记录里没有比较 payload,导致同 feature 但搜索词不同(如上次输入 json、这次输入 json格式化)的重进也会被跳过,而 payload 不同通常意味着一次新的触发意图;
对多标签类插件来说,「同指令重复进入」恰恰需要收到 enter 事件才能激活对应页面。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions