diff options
author | Kirill Moizik <kmoizik@redhat.com> | 2015-08-16 15:35:52 +0300 |
---|---|---|
committer | Pavel Grunt <pgrunt@redhat.com> | 2015-10-09 14:59:09 +0200 |
commit | 1fadf5da5744a3da396579e2c72b77c27aa1760c (patch) | |
tree | 79d24956fbaabea36b642e46cb429a72f15e60ca | |
parent | bfc52439e246890a77fe1961ea1133034ccdb9d8 (diff) |
UsbDeviceWidget: Use asynchronous disconnect APIusb_async
Signed-off-by: Kirill Moizik <kmoizik@redhat.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
-rw-r--r-- | src/usb-device-widget.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/usb-device-widget.c b/src/usb-device-widget.c index 5cb94bf..85aacce 100644 --- a/src/usb-device-widget.c +++ b/src/usb-device-widget.c @@ -437,6 +437,16 @@ typedef struct _connect_cb_data { SpiceUsbDeviceWidget *self; } connect_cb_data; +static void _disconnect_cb(GObject *gobject, GAsyncResult *res, gpointer user_data) +{ + connect_cb_data *data = user_data; + SpiceUsbDeviceWidget *self = data->self; + spice_usb_device_widget_update_status(self); + g_object_unref(data->check); + g_object_unref(data->self); + g_free(data); +} + static void connect_cb(GObject *gobject, GAsyncResult *res, gpointer user_data) { SpiceUsbDeviceManager *manager = SPICE_USB_DEVICE_MANAGER(gobject); @@ -475,19 +485,23 @@ static void checkbox_clicked_cb(GtkWidget *check, gpointer user_data) SpiceUsbDevice *device; device = g_object_get_data(G_OBJECT(check), "usb-device"); + connect_cb_data *data = g_new(connect_cb_data, 1); + data->check = g_object_ref(check); + data->self = g_object_ref(self); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check))) { - connect_cb_data *data = g_new(connect_cb_data, 1); - data->check = g_object_ref(check); - data->self = g_object_ref(self); spice_usb_device_manager_connect_device_async(priv->manager, device, NULL, connect_cb, data); } else { - spice_usb_device_manager_disconnect_device(priv->manager, - device); + spice_usb_device_manager_disconnect_device_async(priv->manager, + device, + NULL, + _disconnect_cb, + data); + } spice_usb_device_widget_update_status(self); } |