To translate a coordinate in one window to the coordinate space of another window, use XTranslateCoordinates().
Bool XTranslateCoordinates(display, src_w, dest_w, src_x, src_y, dest_x_return, 
                            dest_y_return, child_return)
      Display *display;
      Window src_w, dest_w;
      int src_x, src_y;
      int *dest_x_return, *dest_y_return;
      Window *child_return;


display Specifies the connection to the X server.
src_w Specifies the source window.
dest_w Specifies the destination window.
Specify the x and y coordinates within the source window.
Return the x and y coordinates within the destination window.
child_return Returns the child if the coordinates are contained in a mapped child of the destination window.


If XTranslateCoordinates() returns True, it takes the src_x and src_y coordinates relative to the source window's origin and returns these coordinates to dest_x_return and dest_y_return relative to the destination window's origin. If XTranslateCoordinates() returns False, src_w and dest_w are on different screens, and dest_x_return and dest_y_return are zero. If the coordinates are contained in a mapped child of dest_w, that child is returned to child_return. Otherwise, child_return is set to None.

XTranslateCoordinates() can generate a BadWindow error.


BadWindow A value for a Window argument does not name a defined Window.

See also

"Translating Screen Coordinates"
Christophe Tronche, ch@tronche.com