GNU bug report logs -
#36672
27.0.50; NS build: Creating child frame leads to empty space
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On Jul 16, 2019, at 22:28, Alan Third <alan <at> idiocy.org> wrote:
>
> On Mon, Jul 15, 2019 at 08:38:31PM +0300, Andrii Kolomoiets wrote:
>> Assume there are only one space - Desktop
>> 1. emacs -Q
>> 2. M-x toggle-frame-fullscreen
>> Now there are two spaces - Desktop and *scratch*
>> 3. eval (make-frame `((parent-frame . ,(window-frame))))
>> Now there are three spaces:
>> - Desktop
>> - Empty space named *scratch* with emacs menu
>> - *scratch* with emacs frames but without menu
>
> I hit C-x C-c at this point to exit Emacs and it completely crashed my
> session. Not great...
>
> The patch looks good to me, but lets see if we can find solutions to
> these other issues. To be honest, given that Apple don’t provide any
> way to properly deal with spaces, I’d expect this stuff to be handled
> sensibly by default, but I guess that’s too much to ask.
>
>> 1. Removing parent-frame property leaves the frame is same space:
>>
>> (let ((new-frame (make-frame `((parent-frame . ,(window-frame))))))
>> (modify-frame-parameters new-frame `((parent-frame . nil))))
>>
>> Maybe child frame must go fullscreen if ex-parent frame is in
>> fullscreen.
>
> I suppose the best thing to do would be to move it onto the first
> space, but there’s no API for that, apparently. Going fullscreen seems
> like a reasonable work‐around to me.
>
I manage to make this code work. Please see attached updated patch.
But this patch is not completely ready as it missing compilation conditions.
Just hope you find it useful.
>> 2. Setting parent frame after frame creation:
>>
>> (let ((frame (window-frame))
>> (new-frame (make-frame)))
>> (modify-frame-parameters new-frame `((parent-frame . ,frame))))
>
> What do you see happening in this case? I’ve got spaces turned on and
> everything I do just seems to create a new fullscreen space (except
> when it crashes my session).
>
I see same result as in the first case: Desktop, empty blank space
with Emacs menu, space with Emacs frame and no menu/titlebar.
Still can't make this case work. Probably window animation stand in the way:
nsterm.m : 1869: [ 376] ns_set_parent_frame
nsterm.m : 1912: [ 377] | child frame must not be in fullscreen
2019-07-17 21:20:49.027 Emacs[91925:3597098] not in fullscreen state
If ns_set_parent_frame is called while window is still in process of going
full screen then maybe it must be deferred until animation ends.
[ns-emacs-spaces-wip.patch (application/octet-stream, attachment)]
This bug report was last modified 5 years and 73 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.