Files
oak-gpui/crates
张小白 7c306a5a0e gpui: Fix window display on Windows (#18705)
- Closes #18610


This PR addresses the same issue as PR #18578. After a full day of
research and testing, I believe I’ve found the best solution to resolve
this issue. With this PR, the window creation behavior on Windows
becomes more consistent with macOS:

- When `params.show` is `true`: The window is created and immediately
displayed.
- When `params.show` is `false`: The window is created but remains
hidden until the first call to `activate_window`.

As I mentioned in #18578, `winit` creates hidden windows by setting the
window's `exstyle` to `WS_EX_NOACTIVATE | WS_EX_TRANSPARENT |
WS_EX_LAYERED | WS_EX_TOOLWINDOW`, which is different from the method
used in this PR. Here, the window is created with normal parameters, but
we do not call `ShowWindow` so the window is not shown.

I'm not sure why `winit` doesn't use a smilliar approach like this PR to
create hidden windows. My guess is that `winit` is creating this hidden
window to function as a "DispatchWindow" — serving a purpose similar to
`WindowsPlatform` in `zed`. To ensure the window stays hidden even if
`ShowWindow` is called, they use the `exstyle` approach.

With the method used in this PR, my initial tests haven't revealed any
issues.



Release Notes:

- N/A
2024-10-10 14:09:50 +03:00
..
2024-10-08 11:54:28 +02:00
2024-10-09 01:07:18 -07:00
2024-09-13 13:17:49 -04:00
2024-04-30 23:31:59 -06:00
2024-08-13 23:06:07 -07:00
2024-09-23 15:28:04 -06:00
2024-03-11 10:45:57 +01:00
2024-07-15 17:04:15 -06:00
2024-09-23 15:28:04 -06:00
2024-09-27 13:30:25 -04:00
2024-10-02 13:27:16 +02:00
2024-09-16 08:29:46 -04:00