Skip to content

Close NeoAstra apps through unowned top-level frames only - #42

Merged
kzu merged 1 commit into
mainfrom
dev/neoastra
Oct 22, 2026
Merged

kzu merged 1 commit into
mainfrom
dev/neoastra

Conversation

@kzu

@kzu kzu commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Summary

  • When a stopped process has any NeoAstra.Window, post WM_CLOSE only to its unowned top-level frames.
  • Owned windows of that class are dialogs, and the dispatcher, caption, and WebView children are left alone so a canceled close cannot hollow out the window.
  • A process with no NeoAstra.Window keeps the existing generic GUI close.

Test plan

  • Stop a NeoAstra app (for example CodeAlta) and confirm the process receives WM_CLOSE only on unowned NeoAstra.Window frames.
  • Stop Notepad, Calculator, and Excel and confirm they still close through the generic path.

Posting WM_CLOSE to every HWND of a NeoAstra process destroys the dispatcher, caption, and WebView after the frame close is canceled, which leaves a window that cannot exit. When any NeoAstra.Window is present, close only the unowned top-level frames. Other GUI apps keep the generic close.
@kzu kzu added the enhancement New feature or request label Oct 22, 2026
@kzu
kzu enabled auto-merge (rebase) October 22, 2026 21:41
@kzu

kzu commented Oct 22, 2026

Copy link
Copy Markdown
Member Author

233 passed 233 passed

🧪 Details on Ubuntu 26.04.1 LTS

from retest v1.1.0 on .NET 10.0.13 with 💜 by @devlooped

@kzu
kzu merged commit 27e8251 into main Oct 22, 2026
3 checks passed
@kzu
kzu deleted the dev/neoastra branch October 22, 2026 21:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant