vscode 打开视图容器的命令无法正常切换,

mm5n2pyu  于 6个月前  发布在  Vscode
关注(0)|答案(2)|浏览(44)

当所有扩展都被禁用时,这个问题是否发生?:是/否

  • VS Code 版本:1.82
  • OS 版本:macOS 13.5

重现步骤:

  1. 通过扩展贡献一个侧边栏的 webview
  2. 触发 workbench.view.extension.my-view-container。这会打开 webview
  3. 再次触发 workbench.view.extension.my-view-container。这应该将焦点切换回编辑器,但没有
    vscode/src/vs/workbench/browser/parts/views/viewsService.ts
    4a0e776 中的第 380 行到第 384 行
    | | if(!viewsService.isViewContainerVisible(viewContainer.id)||!layoutService.hasFocus(part)){ |
    | | await viewsService.openViewContainer(viewContainer.id,true); |
    | | }else{ |
    | | editorGroupService.activeGroup.focus(); |
    | | } |
    我认为是 !layoutService.hasFocus(part) 这一部分导致了问题。就我所知,document.activeElement 是 webview 的 iframe,但 iframe 不是侧边栏容器的实际子元素,所以 hasFocus (我认为)总是返回 false。
khbbv19g

khbbv19g1#

感谢您提出这个问题!看起来您可能正在使用旧版本的VS Code,最新稳定版本是1.82.3。请尝试升级到最新版本并检查此问题是否仍然存在。
快乐编码!

cqoc49vn

cqoc49vn2#

我也通过安装Copilot Labs并为workbench.view.extension.copilot-labs添加了一个键盘快捷键来复现这个问题。它应该可以在编辑器和webview之间切换焦点。

相关问题