return;
cancel:
- e_keyrouter_keycancel_send(keygrab_data->client, keygrab_data->surface,
- keygrab_data->key);
+ if (keygrab_data->surface)
+ e_keyrouter_surface_keycancel_send(keygrab_data->surface, keygrab_data->key);
+ else
+ e_keyrouter_client_keycancel_send(keygrab_data->client, keygrab_data->key);
+
failed:
KLINF("Failed to %d key ungrab request (wl_client: %p, wl_surface: %p, pid: %d): res: %d",
keygrab_data->key, keygrab_data->client, keygrab_data->surface,
e_keyrouter_surface_keygrab_unset(surface, ungrab_request->key);
cancel:
- e_keyrouter_keycancel_send(client, surface, ungrab_request->key);
+ if (surface)
+ e_keyrouter_surface_keycancel_send(surface, ungrab_request->key);
+ else
+ e_keyrouter_client_keycancel_send(client, ungrab_request->key);
+
done:
ungrab_request->err = res;