• Kim F. Storm's avatar
    * xselect.c (struct selection_event_queue, selection_queue) · dd0fe424
    Kim F. Storm authored
    (x_queue_selection_requests, x_queue_event)
    (x_stop_queuing_selection_requests): Add new queue for selection
    input events to replace previous XEvent queue in xterm.c.
    (queue_selection_requests_unwind): Adapt to new queue.
    (x_reply_selection_request): Adapt to new queue.  Unexpect
    wait_object in case of x errors (memory leak).
    (x_handle_selection_request, x_handle_selection_clear): Make static.
    (x_handle_selection_event): New function.  May queue selection events.
    (wait_for_property_change_unwind): Use save_value instead of cons.
    Clear property_change_reply_object.
    (wait_for_property_change): Abort if already waiting.
    Use save_value instead of cons for unwind data.
    (x_handle_property_notify): Skip events already arrived, but don't
    free them, as "arrived" field is checked by wait_for_property_change,
    and it will be freed by unwind or explicit unexpect_property_change.
    (x_get_foreign_selection): Add to new queue.
    (receive_incremental_selection): Don't unexpect wait_object when done
    as it has already been freed by previous wait_for_property_change.
xselect.c 88.6 KB