mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-10 10:50:10 +00:00
application: Add a query-end signal
This lets us take just-in-time inhibitors, and makes the session support a little more real.
This commit is contained in:
parent
65e9d71da5
commit
d006ee65f5
@ -97,6 +97,7 @@ client_proxy_signal (GDBusProxy *proxy,
|
||||
if (g_str_equal (signal_name, "QueryEndSession"))
|
||||
{
|
||||
g_debug ("Received QueryEndSession");
|
||||
g_signal_emit_by_name (dbus->impl.application, "query-end");
|
||||
send_quit_response (dbus, TRUE, NULL);
|
||||
}
|
||||
else if (g_str_equal (signal_name, "CancelEndSession"))
|
||||
@ -237,6 +238,8 @@ screensaver_signal_portal (GDBusConnection *connection,
|
||||
}
|
||||
else if (session_state == QUERY_END)
|
||||
{
|
||||
g_signal_emit_by_name (dbus->impl.application, "query-end");
|
||||
|
||||
g_dbus_proxy_call (dbus->inhibit_proxy,
|
||||
"QueryEndResponse",
|
||||
g_variant_new ("(o)", dbus->session_id),
|
||||
|
@ -129,6 +129,7 @@
|
||||
enum {
|
||||
WINDOW_ADDED,
|
||||
WINDOW_REMOVED,
|
||||
QUERY_END,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
@ -653,6 +654,22 @@ gtk_application_class_init (GtkApplicationClass *class)
|
||||
g_cclosure_marshal_VOID__OBJECT,
|
||||
G_TYPE_NONE, 1, GTK_TYPE_WINDOW);
|
||||
|
||||
/**
|
||||
* GtkApplication::query-end:
|
||||
* @application: the #GtkApplication which emitted the signal
|
||||
*
|
||||
* Emitted when the session manager is about to end the session, only
|
||||
* if #GtkApplication::register-session is %TRUE. Applications can
|
||||
* connect to this signal and call gtk_application_inhibit() with
|
||||
* %GTK_APPLICATION_INHIBIT_LOGOUT to delay the end of the session
|
||||
* until state has been saved.
|
||||
*/
|
||||
gtk_application_signals[QUERY_END] =
|
||||
g_signal_new (I_("query-end"), GTK_TYPE_APPLICATION, G_SIGNAL_RUN_FIRST,
|
||||
0,
|
||||
NULL, NULL,
|
||||
NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
/**
|
||||
* GtkApplication:register-session:
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user