#include "e_surface_view_intern.h"
#include "e_comp_input_intern.h"
#include "e_view_client_intern.h"
+#include "e_zone_intern.h"
#include <stdlib.h>
#include <wayland-util.h>
struct wl_resource *res, *surface_resource;
struct wl_client *surface_client = NULL;
Eina_List *l, *ll;
+ E_Zone *zone;
surface_resource = e_surface_resource_get(view->surface);
if (surface_resource)
surface_client = wl_resource_get_client(surface_resource);
+ zone = e_comp_zone_find_by_ec(view->ec);
+ if (!zone)
+ {
+ ERR("surface_client_destroy: zone is NULL");
+ zone = e_zone_current_get();
+ }
+
if (surface_client &&
- (view->ec == e_client_focused_get()))
+ (view->ec == e_zone_focused_client_get(zone)))
{
g_rec_mutex_lock(&e_comp_input_key->kbd.focused_mutex);
EINA_LIST_FOREACH_SAFE(e_comp_input_key->kbd.focused, l, ll, res)
{
if (wl_resource_get_client(res) ==
surface_client)
- e_comp_input_key->kbd.focused =
- eina_list_remove_list(e_comp_input_key->kbd.focused, l);
+ {
+ e_comp_input_key->kbd.focused =
+ eina_list_remove_list(e_comp_input_key->kbd.focused, l);
+ }
}
g_rec_mutex_unlock(&e_comp_input_key->kbd.focused_mutex);