if (!ec->comp_data->surface) return;
+ if (!eina_list_count(ec->comp->wl_comp_data->ptr.resources)) return;
+
wc = wl_resource_get_client(ec->comp_data->surface);
serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp);
EINA_LIST_FOREACH(ec->comp->wl_comp_data->ptr.resources, l, res)
if (!ec->comp_data->surface) return;
+ if (!eina_list_count(ec->comp->wl_comp_data->ptr.resources)) return;
+
wc = wl_resource_get_client(ec->comp_data->surface);
serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp);
EINA_LIST_FOREACH(ec->comp->wl_comp_data->ptr.resources, l, res)
if (!ec->comp_data->surface) return EINA_FALSE;
+ if (!eina_list_count(ec->comp->wl_comp_data->ptr.resources))
+ return EINA_TRUE;
+
wc = wl_resource_get_client(ec->comp_data->surface);
serial = wl_display_next_serial(ec->comp->wl_comp_data->wl.disp);
ec->comp_data->focus_update = 1;
if (!ec->comp_data->surface) return;
+ if (!eina_list_count(ec->comp->wl_comp_data->kbd.resources)) return;
+
/* send keyboard_enter to all keyboard resources */
wc = wl_resource_get_client(ec->comp_data->surface);
serial = wl_display_next_serial(e_comp->wl_comp_data->wl.disp);
if (!ec->comp_data->surface) return;
+ ec->comp_data->focus_update = 0;
+
+ if (!eina_list_count(cdata->kbd.resources)) return;
+
/* send keyboard_leave to all keyboard resources */
wc = wl_resource_get_client(ec->comp_data->surface);
serial = wl_display_next_serial(cdata->wl.disp);
if (wl_resource_get_client(res) != wc) continue;
wl_keyboard_send_leave(res, serial, ec->comp_data->surface);
}
- ec->comp_data->focus_update = 0;
}
static void
struct wl_resource *res;
Eina_List *l;
- wc = wl_resource_get_client(ec->comp_data->surface);
- serial = wl_display_next_serial(cdata->wl.disp);
- EINA_LIST_FOREACH(cdata->kbd.resources, l, res)
+ if (eina_list_count(cdata->kbd.resources))
{
- if (wl_resource_get_client(res) != wc) continue;
- wl_keyboard_send_key(res, serial, ev->timestamp,
+ wc = wl_resource_get_client(ec->comp_data->surface);
+ serial = wl_display_next_serial(cdata->wl.disp);
+ EINA_LIST_FOREACH(cdata->kbd.resources, l, res)
+ {
+ if (wl_resource_get_client(res) != wc) continue;
+ wl_keyboard_send_key(res, serial, ev->timestamp,
keycode, WL_KEYBOARD_KEY_STATE_PRESSED);
+ }
}
}
}
struct wl_resource *res;
Eina_List *l;
- wc = wl_resource_get_client(ec->comp_data->surface);
- serial = wl_display_next_serial(cdata->wl.disp);
- EINA_LIST_FOREACH(cdata->kbd.resources, l, res)
+ if (eina_list_count(cdata->kbd.resources))
{
- if (wl_resource_get_client(res) != wc) continue;
- wl_keyboard_send_key(res, serial, ev->timestamp,
+ wc = wl_resource_get_client(ec->comp_data->surface);
+ serial = wl_display_next_serial(cdata->wl.disp);
+ EINA_LIST_FOREACH(cdata->kbd.resources, l, res)
+ {
+ if (wl_resource_get_client(res) != wc) continue;
+ wl_keyboard_send_key(res, serial, ev->timestamp,
keycode, WL_KEYBOARD_KEY_STATE_RELEASED);
- }
+ }
+ }
}
}