emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: Re: redisplay]


From: YAMAMOTO Mitsuharu
Subject: Re: address@hidden: Re: redisplay]
Date: Wed, 18 Mar 2009 17:56:43 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/22.3 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Tue, 17 Mar 2009 11:13:02 -0400, Chong Yidong <address@hidden> said:

> The failure seems to happen more often with the earlier Fredisplay
> call position.  This is not surprising: the Fredisplay call is an
> attempt to update the display of the frames, which depends on X
> server timings that Emacs cannot affect directly.  Since the goal is
> to perform the update just before opening the dialog, calling
> Fredisplay earlier makes this hack less reliable.

> Your analysis, however, makes it clear that this hack is
> problematic.  However, I don't see any good solution right now.  So,
> please go ahead and move the Fredisplay call to an earlier, safe
> position.

Done.

Also, I traced both good and bad cases and observed the following:

Good case (exposed area is redrawn)

  * For the "*vc-diff*" frame, xg_frame_resized is called twice before
    the Fredisplay call.
  * The height of the "*vc-diff*" window becomes 12.

Bad case (exposed are is not redrawn)

  * For the "*vc-diff*" frame, xg_frame_resized is called once before
    and once after the Fredisplay call.  (The second one does
    SET_FRAME_GARBAGED and that prevents subsequent expose_frame calls
    from redrawing the contents until the next redisplay.)
  * The height of the "*vc-diff*" window becomes 10.

                                     YAMAMOTO Mitsuharu
                                address@hidden




reply via email to

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