[Top][All Lists]

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

Lack of redisplay with multiple frames

From: Jason Evans
Subject: Lack of redisplay with multiple frames
Date: Tue, 29 Apr 2003 20:37:01 -0700
User-agent: Mutt/1.4i

[I reported this bug back in the 21.1 days, IIRC, but I didn't have a
simple test case in hand, so the bug report didn't lead to a diagnosis or

Summary: When the same buffer is displayed by multiple frames on the same X
server, the buffer is in many cases not redisplayed in non-focused frames
when text is typed into the buffer via the active frame.

Various events cause a redisplay, such as scrolling, saving, clicking with
the mouse, etc.  However, if all commands are input via the keyboard, this
redisplay problem seems quite reproducible; I see this on a regular basis
when using emacs for development.

Configuration: I am running emacs 21.2/21.3 on an up to date Red Hat 8.0
system on x86 hardware.  You will need to be able to display two 81x72
emacs frames simultaneously in order to reproduce this bug using the
following instructions.

1) Run emacs:

        emacs --help

   The following portion of the output is later pasted into a buffer called
   foo (other data would likely work):

Usage: emacs [OPTION-OR-FILENAME]...

Run Emacs, the extensible, customizable, self-documenting real-time
display editor.  The recommended way to start Emacs for normal editing
is with no options at all.

Run M-x info RET m emacs RET m command arguments RET inside Emacs to
read the main documentation for these command-line arguments.

Initialization options:

--batch                 do not do interactive display; implies -q
--debug-init            enable Emacs Lisp debugger during init file
--help                  display this help message and exit
--multibyte, --no-unibyte   run Emacs in multibyte mode
--no-init-file, -q          load neither ~/.emacs nor default.el
--no-shared-memory, -nl     do not use shared memory
--no-site-file              do not load site-start.el
--no-windows, -nw           don't communicate with X, ignoring $DISPLAY
--terminal, -t DEVICE       use DEVICE for terminal I/O
--unibyte, --no-multibyte   run Emacs in unibyte mode
--user, -u USER         load ~USER/.emacs instead of your own
--version               display version information and exit

Action options:

FILE                    visit FILE using find-file
+LINE FILE              visit FILE using find-file, then go to line LINE
+LINE:COLUMN FILE       visit FILE using find-file, then go to line LINE,
                            column COLUMN
--directory, -L DIR     add DIR to variable load-path
--eval EXPR             evaluate Emacs Lisp expression EXPR
--execute EXPR          evaluate Emacs Lisp expression EXPR
--find-file FILE        visit FILE
--funcall, -f FUNC      call Emacs function FUNC with no arguments
--insert FILE           insert contents of FILE into current buffer
--kill                  exit without asking for confirmation
--load, -l FILE         load FILE of Emacs Lisp code using the load
--visit FILE            visit FILE

Display options:

--background-color, -bg COLOR   window background color
--border-color, -bd COLOR       main border color
--border-width, -bw WIDTH       width of main border
--cursor-color, -cr COLOR       color of the Emacs cursor indicating point
--display, -d DISPLAY           use X server DISPLAY
--font, -fn FONT                default font; must be fixed-width
--foreground-color, -fg COLOR   window foreground color
--geometry, -g GEOMETRY         window geometry
--iconic                        start Emacs in iconified state
--icon-type, -i                 use picture of gnu for Emacs icon
--internal-border, -ib WIDTH    width between text and main border
--line-spacing, -lsp PIXELS     additional space to put between lines
--mouse-color, -ms COLOR        mouse cursor color in Emacs window
--name NAME                     title of main Emacs window
--reverse-video, -r, -rv        switch foreground and background
--title, -T, -wn TITLE          title for Emacs windows
--vertical-scroll-bars, -vb     enable vertical scroll bars
--xrm XRESOURCES                set additional X resources

2) Make sure that emacs will use frames that are 81x72.  I have the
   following X resource set:

        emacs.geometry: 81x72

3) Run emacs:

        emacs -q foo

4) Paste the above portion of the 'emacs --help' output into buffer foo,
   using the middle mouse button.

5) Create another frame:

        C-x 5 2

6) Move up to line 42, using C-p only.

7) Start typing.  Note that the buffer is not redisplayed in the other

These instructions are somewhat fragile.  If you cause an X expose event
for the unfocused frame, resize the frame, or do much of anything outside
what these instructions stipulate, the bug may not reproduce.  However,
this bug is very real, and has existed for every 21.x release I have used
(21.[1-3]).  This is a regular problem for me (I typically edit with three
frames visible).

One more interesting tidbit: when I was coming up with this test case this
morning, emacs (21.2) crashed when I did something very similar to what is
described above.  Sadly, I did not get a core dump, and was unable to
reproduce the crash after adjusting 'ulimit -u'.

If any additional information or testing would be helpful in chasing this
down, please let me know, and I'll be happy to put significant effort into
diagnosing the problem.

Jason Evans

reply via email to

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