[PATCH v4] user32: Implement GetMouseMovePointsEx().

Alexandre Julliard julliard at winehq.org
Fri Oct 2 05:41:34 CDT 2020


Arkadiusz Hiler <ahiler at codeweavers.com> writes:

> On Tue, Sep 29, 2020 at 12:17:12PM +0200, Alexandre Julliard wrote:
>> Rémi Bernon <rbernon at codeweavers.com> writes:
>> 
>> > +typedef struct
>> > +{
>> > +    unsigned int newest;
>> > +    int __pad;
>> > +    cursor_pos_t positions[64];
>> > +} cursor_history_t;
>> 
>> I expect it would be cleaner without this structure, simply returning an
>> array of points.
>
> I will still have to keep track of "newest" on the server side... Or I
> can use memmove() when adding elements to history to keep the
> positions[] ordered. That may be too costly for something that get
> called this often though. Any preference?

You can keep a position on the server side, and return them in the
correct order in the server reply data.

>> > @@ -227,6 +227,8 @@ static const struct object_ops thread_input_ops =
>> >  /* pointer to input structure of foreground thread */
>> >  static unsigned int last_input_time;
>> >  
>> > +static cursor_history_t cursor_history;
>> 
>> This most likely needs to be per-desktop.
>
> Turns out it's shared between Desktops, at least within the same
> WindowStation. I'll add tests for that.
>
> Do we care about making sure it's not per-winstation too?

Yes.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list