[Linux] show/hide emission hooks are never removed; verify clean exit
還沒有人認領這個 Issue。
評估
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 新手友好度
- 68/100
- Issue 類型
- 缺陷
- 描述清晰度
- 基本清楚
- 活躍度
- 活躍
- 技術堆疊
- cpp, linux
研究方向
Start in src/platform/linux/window_manager_linux.cpp at InstallGlobalSwizzling(), comparing the show/hide hooks with the nearby focus-in/focus-out hooks. Trace where window_manager shuts down and verify the hook lifecycle there. Done means a nativeapi Flutter app exits cleanly on Linux under X11 and Wayland, including after closing a secondary window created through package:nativeapi/windowing.dart.
由索引模型根據 Issue 內容生成。
描述
InstallGlobalSwizzling() in src/platform/linux/window_manager_linux.cpp adds show / hide emission hooks on GtkWidget with g_signal_add_emission_hook(), but doesn't keep the hook ids, so they are never removed. The focus-in/focus-out hooks next to them are removed properly.
window_manager had a similar never-removed button-press-event emission hook in its Linux plugin. Users reported crashes when the app exits, or when a secondary Flutter window closes: FlutterEngineRemoveView ... The implicit view cannot be removed, followed by an epoxy/GLX assertion. The hooks here pass no user data, so they probably can't use a freed plugin pointer, but that should be confirmed:
- keep the hook ids and remove them when the manager shuts down
- check that a Flutter app with nativeapi exits cleanly on Linux (X11 and Wayland), including after a secondary window created through
package:nativeapi/windowing.dartis closed
Background:
- leanflutter/window_manager#585: crash on exit on Fedora 44 KDE X11, from just having the plugin
- leanflutter/window_manager#567: a PR that removes the emission hook on plugin dispose
- 主要語言
- C++
- 星號
- 34
- 分支
- 7
- 平均合併
- 3 天 1 小時
- 30 天內合併 PR
- 1
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
libnativeapi/nativeapi 的其他 Issue
-
bug
難度 4/5 3-5 天 新手友好度 45/100
libnativeapi/nativeapi#81 ·
-
bug
難度 4/5 3-5 天 新手友好度 45/100
libnativeapi/nativeapi#80 ·
-
bug
難度 4/5 3-5 天 新手友好度 35/100
libnativeapi/nativeapi#79 ·
-
bug
難度 4/5 3-5 天 新手友好度 45/100
libnativeapi/nativeapi#78 ·
-
bug
難度 4/5 3-5 天 新手友好度 45/100
libnativeapi/nativeapi#77 ·
查看 libnativeapi/nativeapi 的全部 Issue
相似的 Issue
-
ai_reviewed
難度 2/5 1-3 小時 新手友好度 68/100
ydb-platform/ydb#53869 · 3 則留言 ·
-
bug cert blocker needs triage
難度 2/5 1-3 小時 新手友好度 82/100
project-chip/connectedhomeip#74373 ·
-
upstream update
難度 2/5 1-3 小時 新手友好度 75/100
conan-io/conan-center-index#31035 ·
-
Bug
難度 2/5 1-3 小時 新手友好度 68/100
-
documentation
難度 1/5 1 小時以內 新手友好度 85/100
vllm-project/vllm-ascend#17329 ·