• Ken Raeburn's avatar
    Rewrite x_set_mouse_color to sync less. · 08e27d29
    Ken Raeburn authored
    We can track serial numbers of X requests and correlate error events
    with the associated requests.  This way we can identify errors for
    specific calls without having to use XSync after every one.
    
    * src/xfns.c (enum mouse_cursor): New type.
    (struct mouse_cursor_types, struct mouse_cursor_data): New types.
    (mouse_cursor_types): New array listing the Lisp variables and default
    cursor appearances for each cursor type.
    (x_set_mouse_color_handler): New function; checks error event serial
    number against submitted requests.
    (x_set_mouse_color): Updated to use the new error handler callback,
    and to be more table-driven, to simplify repetitious code.
    08e27d29
xfns.c 207 KB