emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r113628: * xterm.c (x_flush): Call XFlush once per e


From: Dmitry Antipov
Subject: [Emacs-diffs] trunk r113628: * xterm.c (x_flush): Call XFlush once per each X display, not
Date: Thu, 01 Aug 2013 05:56:49 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 113628
revision-id: address@hidden
parent: address@hidden
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Thu 2013-08-01 09:56:20 +0400
message:
  * xterm.c (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.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xterm.c                    xterm.c-20091113204419-o5vbwnq5f7feedwu-244
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-08-01 05:28:24 +0000
+++ b/src/ChangeLog     2013-08-01 05:56:20 +0000
@@ -3,6 +3,10 @@
        * 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  <address@hidden>
 

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2013-08-01 05:28:24 +0000
+++ b/src/xterm.c       2013-08-01 05:56:20 +0000
@@ -287,8 +287,6 @@
     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 *);
@@ -356,15 +354,18 @@
     return;
 
   block_input ();
-  if (f == NULL)
-    {
-      Lisp_Object rest, frame;
-      FOR_EACH_FRAME (rest, frame)
-        if (FRAME_X_P (XFRAME (frame)))
-          x_flush (XFRAME (frame));
-    }
-  else if (FRAME_X_P (f))
-    XFlush (FRAME_X_DISPLAY (f));
+  if (f)
+    {
+      eassert (FRAME_X_P (f));
+      XFlush (FRAME_X_DISPLAY (f));
+    }
+  else
+    {
+      /* 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);
+    }
   unblock_input ();
 }
 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]