mirror of
https://github.com/netbirdio/netbird.git
synced 2026-07-19 23:11:29 +02:00
Xlib's default protocol-error handler calls exit() on any async X error, so a tray race (tray manager window dying between find and dock, XMoveWindow on a popup the WM already destroyed) would take the whole UI process down. Install process-global logging no-op handlers via XSetErrorHandler/ XSetIOErrorHandler after every XOpenDisplay. Since the handler slot is process-global and GDK init can clobber it, additionally wrap the popup code's raw Xlib calls on GDK's Display in gdk_x11_display_error_trap_push/ pop_ignored, which is independent of the global handler.
11 KiB
11 KiB