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
EggSMClientGtkApplication
EggSMClient::quit-requested#GtkApplication::quit-requested
EggSMClient::quit#GtkApplication::quit
EggSMClient::quit-cancelled#GtkApplication::quit-cancelled
egg_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.