<adaptiveSync>no</adaptiveSync>
<allowTearing>no</allowTearing>
<reuseOutputMode>no</reuseOutputMode>
- <xwaylandPersistence>no</xwaylandPersistence>
+ <xwaylandPersistence>yes</xwaylandPersistence>
</core>
```
*<core><xwaylandPersistence>* [yes|no]
Keep XWayland alive even when no clients are connected, rather than
using a "lazy" policy that allows the server to launch on demand and die
- when it is no longer needed. Default is no.
+ when it is no longer needed. Default is yes.
+
+ This is only temporarily defaulting to yes to avoid a bug that is
+ present in wlroots <0.18.2 resulting in a compositor crash when
+ performing a drag-and-drop action at the same time as the XWayland
+ server is shutting down. This will be reverted to a default "no" when
+ wlroots-0.18.2 can be linked with.
Note: changing this setting requires a restart of labwc.
<adaptiveSync>no</adaptiveSync>
<allowTearing>no</allowTearing>
<reuseOutputMode>no</reuseOutputMode>
- <xwaylandPersistence>no</xwaylandPersistence>
+ <xwaylandPersistence>yes</xwaylandPersistence>
</core>
<placement>
}
} else if (!strcasecmp(nodename, "xwaylandPersistence.core")) {
set_bool(content, &rc.xwayland_persistence);
+
+ /*
+ * TODO: Temporary warning message. Revert when wlroots-0.18.2
+ * can be linked with.
+ */
+ if (!rc.xwayland_persistence) {
+ wlr_log(WLR_ERROR, "setting xwaylandPersistence to 'no' "
+ "is not encouraged unless wlroots-0.18.2 is used "
+ "since it has a potential risk of crashing the "
+ "entire session. See #2371 for details.");
+ }
} else if (!strcasecmp(nodename, "x.cascadeOffset.placement")) {
rc.placement_cascade_offset_x = atoi(content);
} else if (!strcasecmp(nodename, "y.cascadeOffset.placement")) {
rc.adaptive_sync = LAB_ADAPTIVE_SYNC_DISABLED;
rc.allow_tearing = false;
rc.reuse_output_mode = false;
- rc.xwayland_persistence = false;
+ rc.xwayland_persistence = true;
init_font_defaults(&rc.font_activewindow);
init_font_defaults(&rc.font_inactivewindow);