Hi,

> +/* Sends any keys that were delayed because they were part of the ungrab set 
> */
> +static void send_key_if_delayed(Set *the_set, int keycode)
> +{
> +    if (contains_number(the_set, keycode)) {
> +        qemu_input_event_send_key_qcode(dcl->con, keycode, true);
> +        qemu_input_event_send_key_qcode(dcl->con, keycode, false);
> +    }
> +}

>          case NSEventTypeKeyUp:
>              keycode = cocoa_keycode_to_qemu([event keyCode]);
>  
> +            if (are_sets_equal(ungrab_set, key_set)) {
> +                [self ungrabMouse];
> +                clear_set(key_set);
> +                return;
> +            }
> +            send_key_if_delayed(key_set, keycode);
> +            remove_number(key_set, keycode);

This doesn't maintain the event ordering.

cheers,
  Gerd


Reply via email to