ecore-wl2: Add event handlers even if no data device manager exists
authorChris Michael <cp.michael@samsung.com>
Mon, 10 Jul 2017 17:02:43 +0000 (13:02 -0400)
committerChris Michael <cp.michael@samsung.com>
Mon, 10 Jul 2017 17:02:43 +0000 (13:02 -0400)
If we have no data device manager present, we would still like to
receive events when input devices get added or removed so these
handlers should be setup before we return from this function.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_wl2/ecore_wl2_input.c

index 407f8f5..985aa71 100644 (file)
@@ -1605,13 +1605,6 @@ _ecore_wl2_input_add(Ecore_Wl2_Display *display, unsigned int id, unsigned int v
    wl_seat_add_listener(input->wl.seat, &_seat_listener, input);
    wl_seat_set_user_data(input->wl.seat, input);
 
-   if (!display->wl.data_device_manager) return;
-
-   input->data.device =
-     wl_data_device_manager_get_data_device(display->wl.data_device_manager,
-                                            input->wl.seat);
-   wl_data_device_add_listener(input->data.device, &_data_listener, input);
-
    input->dev_add_handler =
      ecore_event_handler_add(ECORE_WL2_EVENT_DEVICE_ADDED,
                              _ecore_wl2_cb_device_event, input);
@@ -1619,6 +1612,13 @@ _ecore_wl2_input_add(Ecore_Wl2_Display *display, unsigned int id, unsigned int v
    input->dev_remove_handler =
      ecore_event_handler_add(ECORE_WL2_EVENT_DEVICE_REMOVED,
                              _ecore_wl2_cb_device_event, input);
+
+   if (!display->wl.data_device_manager) return;
+
+   input->data.device =
+     wl_data_device_manager_get_data_device(display->wl.data_device_manager,
+                                            input->wl.seat);
+   wl_data_device_add_listener(input->data.device, &_data_listener, input);
 }
 
 void