Subject: Re: bug#31920: 26.1; frame appears in wrong part of desktop after restoring frameset from fullscreen

From: martin rudalics <[email-masked]>
Date: Fri, 22 Jun 2018 10:55:50 +0200

> I see this on my Ubuntu 16.04 box, also running KDE, but only if I go
 > through the restore cycle twice. Also, if I restore frameset a again,
 > the frame ends up in the right place, ie:
 >
 > restore a -> OK
 > restore b -> OK
 > restore a -> NOK
 > restore a -> OK

Confirmed.  The transition from b to a via C-x r j a always moves the
frame to the top/left corner of the screen here.

IIUC C-x r f runs the command 'frameset-to-register' which stores a
"framset" in a register.  C-x r j runs the command 'jump-to-register'
which does _not_ restore a frame's state via 'frameset--restore-frame'
but goes to 'set-frame-configuration' instead.  Apparently, framesets
and frame configurations differ in a couple of minor aspects and the
fullscreen state is one of them.

We probably should replace

     (set-frame-configuration (car val) (not delete))

by something like

     (frameset-restore (car val))

but my knowledge of constructs like 'cl-defmethod' and 'cl-defun' is
too limited to play around with such a change.  Maybe someone wants to
give it at try, it should be a rather low-hanging fruit.

 > Neither of those make any difference for me, nor does using
 > toggle-frame-maximized.

Obviously so because 'frameset--restore-frame' does not get called in
the first place.

Thanks for investigating, martin