[PATCH] winex11: The correct way to search the target window for drag&drop operations.

Zebediah Figura z.figura12 at gmail.com
Wed Apr 17 18:30:11 CDT 2019


Hello John, thanks for the patch! Note that all patches require a 
Signed-off-by header, as a way of taking responsibility for the patch 
and acknowledging that you believe it's acceptable for Wine.

On 4/17/19 4:20 PM, John Found wrote:
 > +/* the recursive worker for window_from_point_dnd */
 > +HWND do_window_from_point_dnd(HWND hwnd, POINT* point)
 > +{
 > +    HWND w;
 > +    w = ChildWindowFromPointEx(hwnd, *point, CWP_SKIPDISABLED | 
CWP_SKIPINVISIBLE);
 > +    if (w && (w != hwnd))
 > +    {
 > +        MapWindowPoints(hwnd, w, point, 1);
 > +        w = do_window_from_point_dnd(w, point);
 > +    }
 > +    return w;
 > +}
 > +
 > +
 > +/* Recursively search for the window on given coordinates in a 
drag&drop specific manner. */
 > +HWND window_from_point_dnd(HWND hwnd, POINT point)
 > +{
 > +    POINT p;
 > +    p.x = point.x;
 > +    p.y = point.y;
 > +    ScreenToClient(hwnd, &p);
 > +    return do_window_from_point_dnd(hwnd, &p);
 > +}
 > +

Maybe I'm missing something here, but don't these two functions 
effectively do the equivalent of WindowFromPoint(point)? Is there any 
reason we can't just use that instead?



More information about the wine-devel mailing list