Hi Anders,
> On 10 May 2016, at 20:56, Anders Lindgren <andlind@gmail.com> wrote:
>
> Hi Ivan and Alan!
>
> I'm not sure that is the correct place for the patch.
>
> Could you enable NSTRACE (by uncommenting the line defining NSTRACE_ENABLED in nsterm.h) and see which function calls `drawRect` (if possible). If that is in a function that is part of Emacs, it's better to check that the frame is visible higher up in the call chain.
>
> You will have to start Emacs from a terminal window in order to see the trace output. You can do this by running "./nextstep/Emacs.app/Content/MacOS/Emacs”.
here is the relevant part of the trace output:
nsterm.m : 1595: [ 6322] x_iconify_frame
nsterm.m : 6770: [ 6323] | [EmacsView windowWillMiniaturize:]
nsterm.m : 6735: [ 6324] | [EmacsView windowDidResignKey:]
nsterm.m : 1504: [ 6325] | | ns_frame_rehighlight
nsterm.m : 7121: [ 6326] | [EmacsView windowDidMiniaturize:]
nsterm.m : 7591: [ 6327] | [EmacsView drawRect:(X:578 Y:4)/(W:15 H:472)]
If I understand it correctly, the top-level function involved (within nsterm.m) is x_iconify_frame. The only explicit call pertinent to the issue that I see within it is:
[[view window] miniaturize: NSApp];
at nsterm.m:1615. I think that the others, from windowWillMiniaturize to drawRect, are callbacks. The reason why a miniaturize request triggers a drawRect escapes me at this time, but I’m definitely not an expert on this GUI.
Thank you and please let me know if I can be of further assistance.
Best regards,
Ivan