Commit 3a6ad4f0 authored by Chong Yidong's avatar Chong Yidong

Handle X selection requests in input-pending-p.

* src/keyboard.c (process_special_events): New function.
(swallow_events, Finput_pending_p): Use it.

Fixes: debbugs:10195
parent ebf10822
2011-12-05 Chong Yidong <cyd@gnu.org>
* keyboard.c (process_special_events): New function.
(swallow_events, Finput_pending_p): Use it (Bug#10195).
2011-12-05 Paul Eggert <eggert@cs.ucla.edu>
* coding.c (encode_designation_at_bol): Don't use uninitialized
......
......@@ -465,6 +465,7 @@ static Lisp_Object (Fcommand_execute) (Lisp_Object, Lisp_Object, Lisp_Object,
Lisp_Object);
static void handle_interrupt (void);
static void quit_throw_to_read_char (int) NO_RETURN;
static void process_special_events (void);
static void timer_start_idle (void);
static void timer_stop_idle (void);
static void timer_resume_idle (void);
......@@ -4145,14 +4146,12 @@ kbd_buffer_get_event (KBOARD **kbp,
return (obj);
}
/* Process any events that are not user-visible,
then return, without reading any user-visible events. */
/* Process any non-user-visible events (currently X selection events),
without reading any user-visible events. */
void
swallow_events (int do_display)
static void
process_special_events (void)
{
int old_timers_run;
while (kbd_fetch_ptr != kbd_store_ptr)
{
struct input_event *event;
......@@ -4187,6 +4186,17 @@ swallow_events (int do_display)
else
break;
}
}
/* Process any events that are not user-visible, run timer events that
are ripe, and return, without reading any user-visible events. */
void
swallow_events (int do_display)
{
int old_timers_run;
process_special_events ();
old_timers_run = timers_run;
get_input_pending (&input_pending, READABLE_EVENTS_DO_TIMERS_NOW);
......@@ -10522,6 +10532,9 @@ if there is a doubt, the value is t. */)
|| !NILP (Vunread_input_method_events))
return (Qt);
/* Process non-user-visible events (Bug#10195). */
process_special_events ();
get_input_pending (&input_pending,
READABLE_EVENTS_DO_TIMERS_NOW
| READABLE_EVENTS_FILTER_EVENTS);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment