From 32cf7162ed6536f9a8042fb17c08b56320eb829b Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 3 May 2016 20:24:54 -0400 Subject: [PATCH] ensure lifetime for wl client focus timer fixes some focus-out crashing --- src/bin/e_comp_wl.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 09b78df65..ec571313f 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -522,11 +522,12 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob { E_Client *ec = data; - E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); - /* lower client priority */ if (!e_object_is_del(data)) - _e_comp_wl_client_priority_normal(ec); + { + _e_comp_wl_client_priority_normal(ec); + E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); + } _e_comp_wl_keyboard_leave(ec); } @@ -2245,6 +2246,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client *ec) wl_signal_emit(&ec->comp_data->destroy_signal, &ec->comp_data->surface); _e_comp_wl_surface_state_finish(&ec->comp_data->pending); + E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del); /* The resource destroy callback will walk the state->frames list, * so move the list to a temporary first.