From 171e5fc3c2382e58aa4791954d6f589aabede241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Thu, 10 Jan 2019 19:03:01 +0100 Subject: [PATCH] udev: Add 'hotplug' event To be used my the monitor manager to handle hotplugs. https://gitlab.gnome.org/GNOME/mutter/issues/548 https://gitlab.gnome.org/GNOME/mutter/merge_requests/525 --- src/backends/native/meta-udev.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backends/native/meta-udev.c b/src/backends/native/meta-udev.c index b36001eac..489ca0948 100644 --- a/src/backends/native/meta-udev.c +++ b/src/backends/native/meta-udev.c @@ -29,6 +29,7 @@ enum { + HOTPLUG, DEVICE_ADDED, N_SIGNALS @@ -162,6 +163,9 @@ on_uevent (GUdevClient *client, if (g_str_equal (action, "add")) g_signal_emit (udev, signals[DEVICE_ADDED], 0, device); + + if (g_udev_device_get_property_as_boolean (device, "HOTPLUG")) + g_signal_emit (udev, signals[HOTPLUG], 0); } GUdevClient * @@ -210,6 +214,13 @@ meta_udev_class_init (MetaUdevClass *klass) object_class->finalize = meta_udev_finalize; + signals[HOTPLUG] = + g_signal_new ("hotplug", + G_TYPE_FROM_CLASS (object_class), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); signals[DEVICE_ADDED] = g_signal_new ("device-added", G_TYPE_FROM_CLASS (object_class),