summaryrefslogtreecommitdiff
path: root/src/lib/ecore_wl2/ecore_wl2_input.c
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2018-01-17 17:33:57 -0500
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-01-17 17:06:13 -0500
commitb48781aa6c85c72f620c57cebff96580ddd67899 (patch)
treea069725dce222985af8e714b36c28f59e5a18b51 /src/lib/ecore_wl2/ecore_wl2_input.c
parent4fb807dd20aecbb29f8616b41451068a0b6d1c65 (diff)
wayland: always flush client display when protocol sends are pending
in the case where a connection was not actively rendering, there was nothing which would trigger a display flush, leading to applications potentially deadlocking @fix
Diffstat (limited to 'src/lib/ecore_wl2/ecore_wl2_input.c')
-rw-r--r--src/lib/ecore_wl2/ecore_wl2_input.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c
index 6f751fb9b2..aa87fde651 100644
--- a/src/lib/ecore_wl2/ecore_wl2_input.c
+++ b/src/lib/ecore_wl2/ecore_wl2_input.c
@@ -1433,6 +1433,7 @@ _seat_cb_capabilities(void *data, struct wl_seat *seat, enum wl_seat_capability
1433 wl_touch_destroy(input->wl.touch); 1433 wl_touch_destroy(input->wl.touch);
1434 input->wl.touch = NULL; 1434 input->wl.touch = NULL;
1435 } 1435 }
1436 ecore_wl2_display_flush(input->display);
1436 1437
1437 ev = calloc(1, sizeof(Ecore_Wl2_Event_Seat_Capabilities)); 1438 ev = calloc(1, sizeof(Ecore_Wl2_Event_Seat_Capabilities));
1438 EINA_SAFETY_ON_NULL_RETURN(ev); 1439 EINA_SAFETY_ON_NULL_RETURN(ev);
@@ -1511,6 +1512,7 @@ _ecore_wl2_input_cursor_update(void *data)
1511 wl_pointer_set_cursor(input->wl.pointer, input->pointer.enter_serial, 1512 wl_pointer_set_cursor(input->wl.pointer, input->pointer.enter_serial,
1512 input->cursor.surface, 1513 input->cursor.surface,
1513 input->cursor.hot_x, input->cursor.hot_y); 1514 input->cursor.hot_x, input->cursor.hot_y);
1515 ecore_wl2_display_flush(input->display);
1514 1516
1515 return ECORE_CALLBACK_RENEW; 1517 return ECORE_CALLBACK_RENEW;
1516} 1518}
@@ -1650,6 +1652,7 @@ _ecore_wl2_input_add(Ecore_Wl2_Display *display, unsigned int id, unsigned int v
1650 wl_data_device_manager_get_data_device(display->wl.data_device_manager, 1652 wl_data_device_manager_get_data_device(display->wl.data_device_manager,
1651 input->wl.seat); 1653 input->wl.seat);
1652 wl_data_device_add_listener(input->data.device, &_data_listener, input); 1654 wl_data_device_add_listener(input->data.device, &_data_listener, input);
1655 ecore_wl2_display_flush(input->display);
1653} 1656}
1654 1657
1655void 1658void