|
- On PA_CONTEXT_FAILED/TERMINATED, emit deviceRemoved for all devices
so UI clears itself, then reconnect after 2s
- Skip pa_context_disconnect and stream detach locks when PA is already
dead to avoid hang in pa_threaded_mainloop_stop
- Emit defaultOutputChanged(0)/defaultInputChanged(0) before deleting
devices to prevent dangling pointer crash in TmixTray::setDevice
- Disconnect all device signals before close() to avoid use-after-free
from cross-device wiring (source→recording levelChanged bridge)
- Icon: generate proper 22x22 (and 16/32/48) from source, install all sizes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|