static void
_e_keyrouter_input_thread_keygrab_unset(void *data)
{
- int res = 0;
E_Input_Thread_Request_Keygrab_Data *keygrab_data = data;
- EINA_SAFETY_ON_NULL_RETURN(keygrab_data);
+ int res = 0;
+
+ res = _e_keyrouter_keygrab_key_available_check(keygrab_data->key);
+ if (res != TIZEN_KEYROUTER_ERROR_NONE)
+ goto failed;
- res = e_keyrouter_keygrab_unset(keygrab_data->client, keygrab_data->surface, keygrab_data->key);
+ e_keyrouter_keygrab_unset(keygrab_data->client,
+ keygrab_data->surface, keygrab_data->key);
- TRACE_INPUT_END();
+ KLDBG("Success to %d key ungrab request (wl_client: %p, wl_surface: %p, pid: %d)",
+ keygrab_data->key, keygrab_data->client, keygrab_data->surface,
+ e_keyrouter_util_get_pid(keygrab_data->client, keygrab_data->surface));
+
+ tizen_keyrouter_send_keygrab_notify(keygrab_data->resource,
+ keygrab_data->surface, keygrab_data->key, TIZEN_KEYROUTER_MODE_NONE, res);
- if (res == TIZEN_KEYROUTER_ERROR_NONE)
- KLDBG("Success to %d key ungrab request (wl_client: %p, wl_surface: %p, pid: %d)", keygrab_data->key, keygrab_data->client, keygrab_data->surface,
- e_keyrouter_util_get_pid(keygrab_data->client, keygrab_data->surface));
- else
- 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_util_get_pid(keygrab_data->client, keygrab_data->surface), res);
+ return;
+
+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_util_get_pid(keygrab_data->client, keygrab_data->surface),
+ res);
- tizen_keyrouter_send_keygrab_notify(keygrab_data->resource, keygrab_data->surface, keygrab_data->key, TIZEN_KEYROUTER_MODE_NONE, res);
+ tizen_keyrouter_send_keygrab_notify(keygrab_data->resource,
+ keygrab_data->surface, keygrab_data->key, TIZEN_KEYROUTER_MODE_NONE, res);
}
/* tizen_keyrouter unset_keygrab request handler */
keygrab_data.key = key;
keygrab_data.mode = TIZEN_KEYROUTER_MODE_NONE; /* UNUSED */
- INF("client: %p, surface: %p, key: %d\n", keygrab_data.client, keygrab_data.surface, keygrab_data.key);
+ INF("client: %p, surface: %p, key: %d\n", keygrab_data.client,
+ keygrab_data.surface, keygrab_data.key);
+
_e_keyrouter_input_thread_keygrab_unset(&keygrab_data);
+
+ TRACE_INPUT_END();
}
/* tizen_keyrouter get_keygrab_status request handler */
if (res != TIZEN_KEYROUTER_ERROR_NONE)
goto done;
- res = e_keyrouter_keygrab_unset(client, surface, ungrab_request->key);
+ e_keyrouter_keygrab_unset(client, surface, ungrab_request->key);
done:
ungrab_request->err = res;
if (res == TIZEN_KEYROUTER_ERROR_NONE)
KLDBG("Success to ungrab using list: %d key (wl_client: %p, wl_surface: %p, pid: %d)",
- ungrab_request->key, client, surface, e_keyrouter_util_get_pid(client, surface));
+ ungrab_request->key, client, surface,
+ e_keyrouter_util_get_pid(client, surface));
else
KLINF("Failed to ungrab using list: %d key (wl_client: %p, wl_surface: %p, pid: %d): res: %d",
- ungrab_request->key, client, surface, e_keyrouter_util_get_pid(client, surface), ungrab_request->err);
+ ungrab_request->key, client, surface,
+ e_keyrouter_util_get_pid(client, surface), ungrab_request->err);
}
TRACE_INPUT_END();
+
tizen_keyrouter_send_keygrab_notify_list(resource, surface, ungrab_list);
}