user32: Set correct caret state in the server in SetCaretPos

Dmitry Timoshkov dmitry at baikal.ru
Sun Dec 20 05:15:19 CST 2015


Anton Baskanov <baskanov at gmail.com> wrote:

> @@ -3040,6 +3040,10 @@ DECL_HANDLER(set_caret_info)
>      if (req->flags & SET_CARET_STATE)
>      {
>          if (req->state == -1) input->caret_state = !input->caret_state;
> +        else if (req->state == -2 &&
> +            (req->x != reply->old_rect.left ||
> +            req->y != reply->old_rect.top))
> +            input->caret_state = 1;
>          else input->caret_state = !!req->state;
>      }

If state == -2 but the additional logic won't match this would fall into
unexpected 3rd case.

-- 
Dmitry.



More information about the wine-devel mailing list