Migrating from EggSMClient to GtkApplication EggSMClient provides 'session management' support for applications. This means a number of things: logout notification and negotiation application state saving restarting of applications with saved state EggSMClient supports this functionality to varying degrees on Windows and OS X, as well as with XSMP and D-Bus based session managers in X11. Starting with GTK+ 3.4, #GtkApplication supports logout notification and negotiation in the same way as EggSMClient, using the same basic API: EggSMClient to GtkApplication EggSMClientGtkApplicationEggSMClient::quit-requested#GtkApplication::quit-requestedEggSMClient::quit#GtkApplication::quitEggSMClient::quit-cancelled#GtkApplication::quit-cancelledegg_sm_client_will_quitgtk_application_quit_response()egg_sm_client_end_sessiongtk_application_end_session()
At this point, GtkApplication has no special support for state saving. Applications can use GSettings or GKeyFile and save as much state as they see fit in response to #GtkApplication::quit or whenever they consider appropriate.