Migrating from EggSMClient to GtkApplication

EggSMClient provides 'session management' support for applications. This means a number of things:

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 similar to EggSMClient.

Table 4. 

EggSMClient GtkApplication
EggSMClient::quit-requested instead of calling will_quit (FALSE,...) in response to this signal, install an inhibitor
EggSMClient::quit the “shutdown” signal
EggSMClient::quit-cancelled -
egg_sm_client_will_quit instead of calling will_quit (FALSE,...), install an inhibitor
egg_sm_client_end_session -

At this point, GtkApplication has no special support for state saving and restarting. Applications can use GSettings or GKeyFile and save as much state as they see fit in response to “shutdown” or whenever they consider appropriate.