Я вижу справочные страницы для этих функций:
XChangeSaveSet, XAddToSaveSet, XRemoveFromSaveSet - change a client's save set
Но никогда не утруждает себя объяснением, что такое «набор для сохранения», так в чем же его смысл?
https://www.x.org/releases/X11R7.7/doc/libX11/libX11/libX11.html#Controlling_the_Lifetime_of_a_Window определяет набор для сохранения как:
save-set клиента - это список окон других клиентов, которые, если они уступают одному из окон клиента при закрытии соединения, не должны быть уничтожены и должны быть переназначены, если они не отображаются. Для получения дополнительной информации об обработке закрытых соединений см. раздел 2.6 . Чтобы позволить окну приложения выжить при сбое оконного менеджера, который переставил окно, Xlib предоставляет набор сохранения функции, которые вы можете использовать для контроля долговечности подокон, которые обычно уничтожаются при уничтожении родителя. Например, оконный менеджер, который хочет добавить украшение в окно, добавив frame может перерисовывать окно приложения. Когда кадр уничтожено, окно приложения не должно быть уничтожено, но должно быть вернулся на прежнее место в иерархии окон.