|
From: | Jan Djärv |
Subject: | Re: address@hidden: Re: redisplay] |
Date: | Mon, 23 Apr 2007 21:14:35 +0200 |
User-agent: | Thunderbird 1.5.0.10 (X11/20070302) |
Chong Yidong skrev:
Richard Stallman <address@hidden> writes:Would someone please debug this, then ack? From: Stephen Berman <address@hidden> Subject: Re: redisplay To: address@hidden On Sat, 21 Apr 2007 20:47:19 -0400 Richard Stallman <address@hidden> wrote:(progn (new-frame) (redisplay t) (x-popup-dialog t '("Foo" ("Bar" . 1)))) I tried this but it didn't fail -- the new frame was not empty.In my Emacs (GNU Emacs 22.0.98.2 (i686-pc-linux-gnu, GTK+ Version 2.10.6) of 2007-04-20 on escher) I see two behaviors: 1. Evalling the above sexp in *scratch* with C-j or in any buffer with M-: results in what the OP reported: "produces a blank frame while the popup dialog is active, i.e., (redisplay t) fails to wait for redisplay to finish." 2. Evalling the sexp with C-x C-e in any buffer results in what RMSreported.I believe this is because x-popup-dialog is handled with a GTK dialog when you build under GTK, instead of using the Emacs redisplay engine.
The redisplay engine don't handle any dialogs, Gtk+, Motif or otherwise.
So the behaviors are slightly different. I don't think this "problem"---if it's really a problem---is serious, and it certainly shouldn't block the Emacs 22 release.
I can't reproduce it with or without Gtk+, *scratch* or not. I suspect it is a timing issue in X. I don't think redisplay guarantees that all redisplay related events has been received and handeled by Emacs before it returns. My guess is that it just makes the needed X calls and then returns. For some reason or another, the dialog blocks the handling of other X events. Can the OP try to move the dialog around a bit and see if the frame below it is redrawn at all?
Jan D.
[Prev in Thread] | Current Thread | [Next in Thread] |