GNU bug report logs - #18347
24.3.93; Incomplete splash screen display on Cygwin-w32 build

Previous Next

Package: emacs;

Reported by: Ken Brown <kbrown <at> cornell.edu>

Date: Thu, 28 Aug 2014 21:52:02 UTC

Severity: normal

Found in version 24.3.93

Fixed in version 24.3.94

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 18347 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Ken Brown <kbrown <at> cornell.edu>
Cc: 18347 <at> debbugs.gnu.org
Subject: Re: bug#18347: 24.3.93;
 Incomplete splash screen display on Cygwin-w32 build
Date: Fri, 29 Aug 2014 22:41:58 +0300
> Date: Fri, 29 Aug 2014 11:08:21 -0400
> From: Ken Brown <kbrown <at> cornell.edu>
> CC: 18347 <at> debbugs.gnu.org
> 
> On 8/29/2014 2:25 AM, Eli Zaretskii wrote:
> >> Date: Thu, 28 Aug 2014 17:51:06 -0400
> >> From: Ken Brown <kbrown <at> cornell.edu>
> >>
> >> --- lisp/startup.el     2014-07-08 09:17:09 +0000
> >> +++ lisp/startup.el     2014-08-28 20:07:20 +0000
> >> @@ -1812,7 +1812,7 @@
> >>      (let (chosen-frame)
> >>        ;; MS-Windows needs this to have a chance to make the initial
> >>        ;; frame visible.
> >> -    (if (eq system-type 'windows-nt)
> >> +    (if (eq window-system 'w32)
> >>           (sit-for 0 t))
> >>        (dolist (frame (append (frame-list) (list (selected-frame))))
> >>          (if (and (frame-visible-p frame)
> >
> > It is fundamentally wrong to use window-system the variable in such
> > circumstances (or almost any other).  Please use the function instead.
> 
> OK.  But could you explain why?  TIA.

Because we don't want to risk assigning it a value.  Also, the
function can accept a frame argument, thus giving you a chance to
inquire about a specific frame (different frames can have different
window-system values).

And if you use window-system as a predicate (not in this case,
obviously), you should use the various display-*-p predicates instead.

> >> Is this still OK for the native Windows build?  If so, is it OK to
> >> install it in the release branch?
> >
> > Yes and yes.  Although I'd urge you to try to figure out why this is
> > needed in the cygwin-w32 build (the native-build problem which led to
> > this code manifested itself in a rather different way, see bug#16014).
> 
> Actually, the visual symptom I'm describing (failure of the logo to 
> appear) is identical to what Juanma reported in that bug.

OK, but that's not what your original description said.

> Your message in that bug discussion says, "It's again that timing
> thing with making the initial frame visible."  The "again" suggests
> that there is an earlier bug report or discussion about that.  Can
> you give me a reference or just explain what you meant by that?

Bug#14841, I think.

Basically, since creating a frame on w32 takes some time until the OS
sets up the message pump for the new frame, Lisp code that creates a
frame and immediately proceeds with manipulating the new frame might
sometimes need sit-for to let the dust settle.




This bug report was last modified 10 years and 263 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.