On Thu Feb 13 16:48:27 2025 +0000, Brian Wright wrote:
@rbernon On the client side, if you wanted to know why the log produces the values it has or had advice on code changes, the relevant file seems to be [yabridge/src/wine-host/editor.cpp](https://github.com/robbert-vdh/yabridge/blob/master/src/wine-host/editor.cpp) and a few routines responsible for coords and mouse handling that might be indirectly showing up in the bug report log include **is_cursor_in_wine_window** (line 1442), **get_current_pointer_position** (line 953), **fix_local_coordinates** (line 785), and `case XCB_CONFIGURE_NOTIFY` (line 552) I can attach to Wine and/or yabridge in a debugger, but I wouldn't have advice on what to change since I don't know how the handle relationships should look in order to find out which routine is producing incorrect coordinate offsets. If you want me to try anyway, I can put it in the queue of all the other stuff I forget to do once the workday is over. Thanks to you and @robbert-vdh for maintaining two phenomenal tools.
I updated the bug tracker again.
In REAPER, the window tree looks a bit like this:
```text host_window_reparent parent 402, window 200192 (604,402)-(1516,1110) host_window_reparent parent 200192, window 200193 (0,0)-(912,708) root_coords 1 host_window_reparent parent 200193, window 1600130 (0,0)-(912,708) root_coords 1 host_window_reparent parent 1600130, window 16012db (0,0)-(644,659) root_coords 1 host_window_reparent parent 16012db, window 2200000 (0,0)-(805,460) root_coords 1 host_window_reparent parent 2200000, window 2000003 (0,0)-(1920,1200) root_coords 0 ```
I think 402, 200192, and 200193 are from REAPER and the rest from yabridge.
One detail I noticed is that window 2000003 gets the initial click event from yabridge and sends the correct value to **cursor:map_event_coords**. I don't know the structure of event->window, but there is something in [**host_window_configure_child**](https://gitlab.winehq.org/wine/wine/-/blob/master/dlls/winex11.drv/window.c#...) that messes with coordinate offsets.
Is is possible that **map_event_coords** should check the value of `root_coords` and provide `(pt->x, pt->y)` when this is 0?
I'll keep picking at things and see if there's more to find.
-----
Alternatively, a flag/argument solution would get DAW users back in action.