fix: handle X11 connection loss gracefully

Use XSetIOErrorExitHandler on X11 to detect connection loss and
disable GTK features (tray, clipboard, notifications).

Signed-off-by: Michael Vetter <jubalh@iodoru.org>
Signed-off-by: Paul Fertser <fercerpav@gmail.com>
Co-authored-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
Michael Vetter
2026-03-31 13:06:09 +02:00
parent 9b2f96fb45
commit 8eac31e5e1
6 changed files with 76 additions and 1 deletions

View File

@@ -6477,6 +6477,10 @@ gboolean
cmd_tray(ProfWin* window, const char* const command, gchar** args)
{
#ifdef HAVE_GTK
if (!tray_gtk_ready()) {
log_warning("GTK is not ready. Tray functionality is disabled.");
return TRUE;
}
if (g_strcmp0(args[0], "timer") == 0) {
if (args[1] == NULL) {
cons_bad_cmd_usage(command);
@@ -8975,6 +8979,10 @@ gboolean
cmd_paste(ProfWin* window, const char* const command, gchar** args)
{
#ifdef HAVE_GTK
if (!tray_gtk_ready()) {
log_warning("GTK is not ready. Paste from clipboard is disabled.");
return TRUE;
}
auto_char char* clipboard_buffer = clipboard_get();
if (clipboard_buffer) {