emacs-devel
[Top][All Lists]
Advanced

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

multiple displays and ttys


From: Stefan Monnier
Subject: multiple displays and ttys
Date: Fri, 21 Sep 2007 04:08:01 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/23.0.50 (gnu/linux)

Now that I'm using emacsclient even more, I more often bump into situations
where Emacs displays a buffer in some display that I cannot see.

I suggest the patch below which makes that only the frames on
the `current terminal' are considered as visible.

This way, when you're working on /dev/pts/2, all the frames on ":0.0" are
considered as invisible, and similarly between different X displays.

I find this invaluable.  Any objection?


        Stefan


diff -u -b /home/monnier/src/emacs/trunk/src/window.c 
/home/monnier/src/emacs/work/src/window.c
--- /home/monnier/src/emacs/trunk/src/window.c  2007-09-21 03:55:52.000000000 
-0400
+++ /home/monnier/src/emacs/work/src/window.c   2007-09-21 04:03:11.000000000 
-0400
@@ -1794,7 +1798,8 @@
   else if (EQ (all_frames, Qvisible))
     {
       FRAME_SAMPLE_VISIBILITY (f);
-      candidate_p = FRAME_VISIBLE_P (f);
+      candidate_p = FRAME_VISIBLE_P (f)
+       && (FRAME_TERMINAL (f) == FRAME_TERMINAL (XFRAME (selected_frame)));
     }
   else if (INTEGERP (all_frames) && XINT (all_frames) == 0)
     {
@@ -1810,7 +1815,8 @@
                     || (FRAME_X_P (f) && f->output_data.x->asked_for_visible
                         && !f->output_data.x->has_been_visible)
 #endif
-                    );
+                    )
+       && (FRAME_TERMINAL (f) == FRAME_TERMINAL (XFRAME (selected_frame)));
     }
   else if (WINDOWP (all_frames))
     candidate_p = (EQ (FRAME_MINIBUF_WINDOW (f), all_frames)




reply via email to

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