* xterm.c (last_mouse_press_frame): Remove the
leftover which is not really used any more.
(handle_one_xevent, syms_of_xterm): Adjust users.
+ (x_flush): Call XFlush once per each X display, not frame.
+ This is better because this code always unconditionally skips
+ non-X frames in Vframe_list and issues the only XFlush if we
+ have more than one X frame on the same X display.
2013-07-31 Dmitry Antipov <dmantipov@yandex.ru>
XEMBED_ACTIVATE_ACCELERATOR = 14
};
-/* Used in x_flush. */
-
static bool x_alloc_nearest_color_1 (Display *, Colormap, XColor *);
static void x_set_window_size_1 (struct frame *, int, int, int);
static void x_raise_frame (struct frame *);
return;
block_input ();
- if (f == NULL)
+ if (f)
+ {
+ eassert (FRAME_X_P (f));
+ XFlush (FRAME_X_DISPLAY (f));
+ }
+ else
{
- Lisp_Object rest, frame;
- FOR_EACH_FRAME (rest, frame)
- if (FRAME_X_P (XFRAME (frame)))
- x_flush (XFRAME (frame));
+ /* Flush all displays and so all frames on them. */
+ struct x_display_info *xdi;
+ for (xdi = x_display_list; xdi; xdi = xdi->next)
+ XFlush (xdi->display);
}
- else if (FRAME_X_P (f))
- XFlush (FRAME_X_DISPLAY (f));
unblock_input ();
}