Subject: Re: bug#24091: 24.5; High CPU usage at startup while hidden

From: Noam Postavsky <[email-masked]>
Date: Sat, 3 Sep 2016 14:40:23 -0400

On Sat, Sep 3, 2016 at 2:35 PM, Eli Zaretskii <[email-masked]> wrote:
>> From: Noam Postavsky <[email-masked]>
>> Date: Sat, 3 Sep 2016 13:53:40 -0400
>> Cc: [email-masked], Aiken <[email-masked]>,
>>       Clément Pit--Claudel <[email-masked]>
>>
>> >> Emacs is getting PropertyNotify, ConfigureNotify, MapNotify, and
>> >> ReparentNotify events.
>> >
>> > Does it work to turn this:
>> >
>> >         if (FRAME_ICONIFIED_P (f) &&  ++tries > 100)
>> >           break;
>> >
>> > into this:
>> >
>> >         if ((FRAME_ICONIFIED_P (f) || FRAME_VISIBLE_P (f)) &&  ++tries > 100)
>> >           break;
>>
>> No, which sort of makes sense since the frame isn't actually visible.
>
> But you said the MapNotify event was received?  Doesn't that cause the
> frame to become marked as visible?

Only if x_top_window_to_frame returns non-nil, which it does not.

    case MapNotify:
      /* We use x_top_window_to_frame because map events can
         come for sub-windows and they don't mean that the
         frame is visible.  */
      f = x_top_window_to_frame (dpyinfo, event->xmap.window);
      if (f)
        {
...
          SET_FRAME_VISIBLE (f, 1);
...
        }
      goto OTHER;