static bool page_flip(struct wlc_backend_surface *bsurface) { struct timespec ts; wlc_get_time(&ts); struct wlc_output *o; wlc_output_finish_frame(wl_container_of(bsurface, o, bsurface), &ts); return true; }
static void send_release_for_keys(struct chck_iter_pool *resources, struct chck_iter_pool *keys) { assert(keys); wlc_dlog(WLC_DBG_KEYBOARD, "release keys"); uint32_t *k; uint32_t time = wlc_get_time(NULL); chck_iter_pool_for_each(keys, k) { wlc_resource *r; chck_iter_pool_for_each(resources, r) { struct wl_resource *wr; if (!(wr = wl_resource_from_wlc_resource(*r, "keyboard"))) continue; uint32_t serial = wl_display_next_serial(wlc_display()); wl_keyboard_send_key(wr, serial, time, *k, WL_KEYBOARD_KEY_STATE_RELEASED); } }