static void
input_method_context_end_keyboard_grab(struct input_method_context *context)
{
- struct weston_keyboard_grab *grab =
- &context->input_method->seat->keyboard->input_method_grab;
- struct weston_keyboard *keyboard = grab->keyboard;
+ struct weston_keyboard_grab *grab;
+ struct weston_keyboard *keyboard;
+
+ if (!context->input_method->seat->keyboard)
+ return;
- if (!grab->keyboard)
+ grab = &context->input_method->seat->keyboard->input_method_grab;
+ keyboard = grab->keyboard;
+ if (!keyboard)
return;
- if (grab->keyboard->grab == grab)
- weston_keyboard_end_grab(grab->keyboard);
+ if (keyboard->grab == grab)
+ weston_keyboard_end_grab(keyboard);
keyboard->input_method_resource = NULL;
}