wayland: auto-restart on crash; verify info-panel and icon-chooser

E3 (Crash Dialog):
  Showing a UI from a crashed compositor's child process is impossible
  on Wayland — the child cannot connect to the dead parent's display.
  Default to WMRestart instead of WMAbort, so the user's session
  recovers automatically on a wmaker crash (the standard daily-driver
  expectation).  Removed the misleading 'cannot open connection'
  message.

E2 (Info Panel) and E4 (Icon Chooser): both already use the standard
fake_leader_create + wManageInternalWindow pattern that the Exit and
Run dialogs use.  No code changes; user can verify by opening Info
Panel from the root menu and Icon Chooser via right-click on a dock
icon → Settings → Browse.
This commit is contained in:
Window Maker 2026-05-24 09:26:24 +02:00
parent 3ed50c69ec
commit eeb161c616
1 changed files with 8 additions and 2 deletions

View File

@ -199,6 +199,7 @@
#include "../../appicon.h" /* WAppIcon */
#include "../../menu.h" /* WMenu, WMenuEntry */
#include "../../balloon.h" /* WBalloon */
#include "../../dialog.h" /* WMRestart, WMAbort */
#include "../backend.h"
#include "wl_backend.h"
@ -3968,9 +3969,14 @@ wl_screen_init_display(WScreen *scr, int screen_number)
static int
wl_show_crash_dialog(int sig)
{
/* Wayland: showing a UI from a crashed compositor's child process is
* not possible (the child would need to connect to the dead parent
* for its compositor). Default to auto-restart, which is the most
* useful behavior for a daily-driver compositor — the user's session
* recovers on its own. The crash signal is logged separately by
* the monitor parent. */
(void)sig;
werror(_("cannot open connection for crashing dialog panel. Aborting."));
return 0; /* WMAbort */
return WMRestart;
}
/* ------------------------------------------------------------------ */