当所有扩展都被禁用时,这个问题是否发生?:是/否
- VS Code 版本:1.82
- OS 版本:macOS 13.5
重现步骤:
- 通过扩展贡献一个侧边栏的 webview
- 触发
workbench.view.extension.my-view-container
。这会打开 webview - 再次触发
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。
2条答案
按热度按时间khbbv19g1#
感谢您提出这个问题!看起来您可能正在使用旧版本的VS Code,最新稳定版本是1.82.3。请尝试升级到最新版本并检查此问题是否仍然存在。
快乐编码!
cqoc49vn2#
我也通过安装Copilot Labs并为
workbench.view.extension.copilot-labs
添加了一个键盘快捷键来复现这个问题。它应该可以在编辑器和webview之间切换焦点。