modifiers |= MOD_CONTROL_MASK;
sym = _keyname_to_keysym(key.code, &modifiers);
- wsc_context_send_key(ic->ctx, sym, modifiers, time, key.is_key_press());
+
+ if (ic)
+ wsc_context_send_key(ic->ctx, sym, modifiers, time, key.is_key_press());
}
static void
{
char *surrounding_text;
- if (!ctx->preedit_str ||
+ if (!ctx || !ctx->preedit_str ||
strlen(ctx->preedit_str) == 0)
return;
static void
wsc_send_preedit(weescim *ctx, int32_t cursor)
{
+ if (!ctx) return;
+
uint32_t index = strlen(ctx->preedit_str);
if (ctx->preedit_style)
{
Ecore_IMF_Input_Panel_Layout layout = ECORE_IMF_INPUT_PANEL_LAYOUT_NORMAL;
+ if (!ctx)
+ return layout;
+
switch (ctx->content_purpose) {
case WL_TEXT_INPUT_CONTENT_PURPOSE_DIGITS:
case WL_TEXT_INPUT_CONTENT_PURPOSE_NUMBER:
bool wsc_context_input_panel_caps_lock_mode_get(weescim *ctx)
{
+ if (!ctx)
+ return false;
+
if (ctx->content_hint & WL_TEXT_INPUT_CONTENT_HINT_UPPERCASE)
return true;
void wsc_context_commit_string(weescim *ctx, const char *str)
{
+ if (!ctx)
+ return;
+
if (ctx->preedit_str) {
free(ctx->preedit_str);
ctx->preedit_str = NULL;
_wsc_im_ctx_reset(void *data, struct wl_input_method_context *im_ctx)
{
struct weescim *wsc = (weescim*)data;
+ if (!wsc) return;
- if (wsc)
- isf_wsc_context_reset(wsc->wsc_ctx);
+ isf_wsc_context_reset(wsc->wsc_ctx);
}
static void
_wsc_im_ctx_invoke_action(void *data, struct wl_input_method_context *im_ctx, uint32_t button, uint32_t index)
{
struct weescim *wsc = (weescim*)data;
+ if (!wsc) return;
if (button != BTN_LEFT)
return;
- if (wsc)
- wsc_context_send_preedit_string (wsc);
+ wsc_context_send_preedit_string (wsc);
}
static void