diff options
author | Ray Strode <halfline@gmail.com> | 2022-03-23 15:13:30 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2022-03-23 15:13:30 +0000 |
commit | dba05ca9da4200eb789a87a4493a090d2ce5d224 (patch) | |
tree | 3ba2b9a6e77b2cc9af052e1ce46950de4eef8312 | |
parent | c1e1abf312cde2ffb77d0242b161c57d962b8e3f (diff) | |
parent | 307c683f00e1711973139837992ca0f6f55314a5 (diff) | |
download | gdm-dba05ca9da4200eb789a87a4493a090d2ce5d224.tar.gz |
Merge branch 'no-udev-after-timeout' into 'main'
local-display-factory: Stop listening to udev events after timeout
See merge request GNOME/gdm!175
-rw-r--r-- | daemon/gdm-local-display-factory.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c index 7de7b99c..b3335cd4 100644 --- a/daemon/gdm-local-display-factory.c +++ b/daemon/gdm-local-display-factory.c @@ -78,7 +78,7 @@ struct _GdmLocalDisplayFactory gboolean seat0_graphics_check_timed_out; guint seat0_graphics_check_timeout_id; - guint uevent_handler_id; + gulong uevent_handler_id; #if defined(ENABLE_USER_DISPLAY_SERVER) unsigned int active_vt; @@ -710,6 +710,10 @@ udev_is_settled (GdmLocalDisplayFactory *factory) g_debug ("GdmLocalDisplayFactory: udev has %ssettled enough for graphics.", is_settled? "" : "not "); g_list_free_full (devices, g_object_unref); + + if (is_settled) + g_clear_signal_handler (&factory->uevent_handler_id, factory->gudev_client); + return is_settled; } #endif @@ -1287,9 +1291,6 @@ on_uevent (GUdevClient *client, if (!udev_is_settled (factory)) return; - g_signal_handler_disconnect (factory->gudev_client, factory->uevent_handler_id); - factory->uevent_handler_id = 0; - gdm_settings_direct_reload (); ensure_display_for_seat (factory, "seat0"); } |