[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xterm.c
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] Changes to emacs/src/xterm.c |
Date: |
Fri, 12 Nov 2004 12:08:58 -0500 |
Index: emacs/src/xterm.c
diff -c emacs/src/xterm.c:1.849 emacs/src/xterm.c:1.850
*** emacs/src/xterm.c:1.849 Tue Nov 2 16:25:49 2004
--- emacs/src/xterm.c Fri Nov 5 11:30:44 2004
***************
*** 5575,5647 ****
}
- /* Define a queue to save up SelectionRequest events for later handling. */
-
- struct selection_event_queue
- {
- XEvent event;
- struct selection_event_queue *next;
- };
-
- static struct selection_event_queue *queue;
-
- /* Nonzero means queue up certain events--don't process them yet. */
-
- static int x_queue_selection_requests;
-
- /* Queue up an X event *EVENT, to be processed later. */
-
- static void
- x_queue_event (f, event)
- FRAME_PTR f;
- XEvent *event;
- {
- struct selection_event_queue *queue_tmp
- = (struct selection_event_queue *) xmalloc (sizeof (struct
selection_event_queue));
-
- if (queue_tmp != NULL)
- {
- queue_tmp->event = *event;
- queue_tmp->next = queue;
- queue = queue_tmp;
- }
- }
-
- /* Take all the queued events and put them back
- so that they get processed afresh. */
-
- static void
- x_unqueue_events (display)
- Display *display;
- {
- while (queue != NULL)
- {
- struct selection_event_queue *queue_tmp = queue;
- XPutBackEvent (display, &queue_tmp->event);
- queue = queue_tmp->next;
- xfree ((char *)queue_tmp);
- }
- }
-
- /* Start queuing SelectionRequest events. */
-
- void
- x_start_queuing_selection_requests (display)
- Display *display;
- {
- x_queue_selection_requests++;
- }
-
- /* Stop queuing SelectionRequest events. */
-
- void
- x_stop_queuing_selection_requests (display)
- Display *display;
- {
- x_queue_selection_requests--;
- x_unqueue_events (display);
- }
-
/* The main X event-reading loop - XTread_socket. */
#if 0
--- 5575,5580 ----
***************
*** 6019,6029 ****
if (!x_window_to_frame (dpyinfo, event.xselectionrequest.owner))
goto OTHER;
#endif /* USE_X_TOOLKIT */
! if (x_queue_selection_requests)
! x_queue_event (x_window_to_frame (dpyinfo,
event.xselectionrequest.owner),
! &event);
! else
! {
XSelectionRequestEvent *eventp
= (XSelectionRequestEvent *) &event;
--- 5952,5958 ----
if (!x_window_to_frame (dpyinfo, event.xselectionrequest.owner))
goto OTHER;
#endif /* USE_X_TOOLKIT */
! {
XSelectionRequestEvent *eventp
= (XSelectionRequestEvent *) &event;
***************
*** 6035,6041 ****
SELECTION_EVENT_PROPERTY (&inev) = eventp->property;
SELECTION_EVENT_TIME (&inev) = eventp->time;
inev.frame_or_window = Qnil;
! }
break;
case PropertyNotify:
--- 5964,5970 ----
SELECTION_EVENT_PROPERTY (&inev) = eventp->property;
SELECTION_EVENT_TIME (&inev) = eventp->time;
inev.frame_or_window = Qnil;
! }
break;
case PropertyNotify:
***************
*** 7619,7625 ****
/* The display may have been closed before this function is called.
Check if it is still open before calling XSync. */
if (x_display_info_for_display (dpy) != 0)
! XSync (dpy, False);
x_error_message_string = XCDR (old_val);
return Qnil;
--- 7548,7558 ----
/* The display may have been closed before this function is called.
Check if it is still open before calling XSync. */
if (x_display_info_for_display (dpy) != 0)
! {
! BLOCK_INPUT;
! XSync (dpy, False);
! UNBLOCK_INPUT;
! }
x_error_message_string = XCDR (old_val);
return Qnil;