дзеркало
https://github.com/l0ng-ai/openidea.git
синхронізовано 2026-11-09 19:25:54 +02:00
fix(windows): de-parent settings window on Windows so DWM paints its shadow
An owned child (WS_POPUP) of a borderless parent gets no DWM shadow, leaving the frameless settings window flat against its project window. Ownership is already tracked by the settings-<parent> label (parent-close cleanup in on_window_event, menu modality), so make the settings window top-level on Windows; macOS and Linux keep the native parent link.
Цей коміт міститься в:
1 джерело
8ea8c98a39
коміт
795f8e85f1
2 files changed
+11
-5
No files matched your search
@@ -796,9 +796,13 @@ pub fn open_settings_window(
|
||||
#[cfg(target_os = "linux")]
|
||||
crate::linux_window_state::prepare(app, &mut config);
|
||||
let builder = WebviewWindowBuilder::from_config(app, &config);
|
||||
// AppKit child windows can disappear when dragged to another display's Space.
|
||||
// The settings label already tracks ownership and parent-close cleanup.
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
// Windows: an owned child (WS_POPUP) of a borderless parent gets no DWM
|
||||
// shadow, leaving the frameless settings window flat against its parent.
|
||||
// Ownership is tracked by the `settings-<parent>` label instead
|
||||
// (parent-close cleanup, menu modality), so only Linux keeps the native
|
||||
// parent link. AppKit child windows can disappear when dragged to another
|
||||
// display's Space, so macOS keeps it too.
|
||||
#[cfg(target_os = "linux")]
|
||||
let builder = builder.and_then(|b| b.parent(&parent));
|
||||
let window = builder
|
||||
.and_then(|b| dev_font_preferences(b).build())
|
||||
|
||||
Reference in new issue
Заблокувати користувача