[Bug]:Electron应用在从最小化恢复时变得无法固定

nx7onnlm  于 3个月前  发布在  Electron
关注(0)|答案(9)|浏览(54)

预检清单

Electron 版本

13.1.7

您正在使用的操作系统是什么?

Windows

您正在使用的操作系统版本是什么?

Windows 11 Dev Insider

您正在使用的架构是什么?

x64

最后已知的工作 Electron 版本是什么?

不确定

预期行为

  1. 通过按下 WIN+左/右键、拖动或悬停在最大化按钮上,通过 Snap 将 Electron 应用程序窗口捕捉。
  2. 最小化窗口。
  3. 通过任务栏点击窗口将其再次拉起。

预期行为: Electron 窗口保持捕捉状态。

实际行为

  1. 通过按下 WIN+左/右键、拖动或悬停在最大化按钮上,通过 Snap 将 Electron 应用程序窗口捕捉。
  2. 最小化窗口。
  3. 通过任务栏点击窗口将其再次拉起。

实际行为: Electron 窗口未被捕捉,因为角落是圆角而不是尖角,所以它可见。

f3temu5u

f3temu5u1#

你好,@kch281
我在Windows 11版本22000上运行最新版本15.2.0进行了测试,但似乎无法重现这个问题:
issue31451.mp4
我是不是漏掉了什么,还是只有在运行内测版时才会出现这种情况?

b0zn9rqh

b0zn9rqh2#

我还在VS Code(版本13.5.1)中测试了这个功能,但仍然无法重现问题。

jv4diomz

jv4diomz3#

我认为这仅在内部版本上发生-我可以在Dev Channel 22478 build上使用Electron Fiddle运行v13.1.7进行复现。

js81xvg6

js81xvg64#

请尝试使用最新版本的Electron和Chrome,看看是否可以复现这个问题?
这看起来更像是Windows回归问题,而不是Electron的bug:它在22000上工作正常,但在Dev Channel上不行。Dev Channel中有什么变化会影响到这个问题吗?

mkh04yzy

mkh04yzy5#

尝试了16.00-alpha.9和Chromium版本96.0.4647.0,出现了问题。我不确定发生了什么变化,但我会请几位同事进一步调查。谢谢!

j7dteeu8

j7dteeu86#

你好,@kch281

我在运行最新版本15.2.0的Windows 11(版本22000)上进行了测试,但似乎无法重现该问题:
issue31451.mp4

我是不是漏掉了什么?还是这个问题只在运行内部预览版时才会出现?

在很短的时间内没有发生这种情况。这不是一个内部预览版独有的问题,你可以查看我的其他问题(包括版本信息等)。当它保持打开状态较长时间时,才会发生这种情况。

e3bfsja2

e3bfsja27#

这将在从构建编号22497开始的Windows构建中重现。

这个重现的原因是因为这段代码中的一个调用:
electron/shell/browser/native_window_views_win.cc
第272行 in 6bd06c9
| | SetWindowPlacement(GetAcceleratedWidget(), &wp); |
在OS构建22497之前,这个调用是“完全被忽略”的(它什么都不做)。但是从那个构建开始,如果窗口被安排,这个调用将取消安排窗口。由于这个SetWindowPlacement调用是在WM_GETMINMAXINFO中完成的,所以提供的实际位置仍然被覆盖(WM_GETMINMAXINFO在更改窗口位置之前立即发送,这不是更改窗口位置的好时机)。

这段代码提到了一个“窗口错误”,即最小化的窗口位于最左边的显示器上。实际上,最小化的窗口位置是-32000,-32000,而“最近”的显示器是最左边/最顶边的显示器。从像WM_WINDOWPOSCHANGED这样的消息中,您可以通过检查IsIconic来安全地忽略最小化的位置。

ifsvaxew

ifsvaxew8#

这个问题已经被自动标记为过时。如果这个问题仍然影响到你,请留下任何评论(例如“提升”),我们会保持开放。如果你有任何新的附加信息——特别是,如果这个问题在 latest version of Electronbeta 中仍然可复现——请在你的评论中包含它!

kxeu7u2r

kxeu7u2r9#

这个问题由于不活跃而被关闭,将不再被监控。如果这是一个错误并且您可以在支持的Electron版本上重现此问题,请打开一个新问题并包括重现问题的说明。

相关问题