bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#25943: 21.5 Frame Display Difficulties


From: david
Subject: bug#25943: 21.5 Frame Display Difficulties
Date: Tue, 28 Mar 2017 16:43:08 -0600
User-agent: Tuxedo/0.1

Hello Martin,

I have run your frame-position code a few times; I have not had time to do
anything else.

GNU Emacs 25.1.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.9) of
2017-03-19
Linux Mint 18.1 Serena (GNU/Linux 4.4.0-53-generic x86_64)

The screenshots show the result of running your code under both 23.2 and
25.1.  As you can see, 23.2 produced the four stacks of three frames as
expected.  Also clear is that three of the four stacks under 25.1 are not
even: there is positional scatter.  What is not clear is that the 25.1
stacks do not always have three frames each.

I modified your code to help me look at what was happening, this code is
attached.  I ran both sets of code several times.  The results are
interesting because the behaviour usually changed from run to run; in
other words the code is not deterministic.

The attached file list-output-unmodified shows output from a 25.1 run that
had 5 frames in the left top corner, 3 frames in the right bottom corner,
and 2 in each of the other corners.  I emphasize that these stack sizes
are not consistent.  I am unable to do anything similar for 23.2 because
function frame-position does not exist in 23.2.

The modified code labels the frames and so it is possible to see which are
the rogue frames in any given run.  A correct run gives the result below,
and it is easy to see how this is correct since 1-4 are the arg frames,
5-8 are par, 9-C are fun, and the position order is LT, LB, RT, RB.  The
9-C frames are on top of the stack, so they are the first that are seen.
LT 951            RT B73
LB A62            RB C84

Here are some results from other runs:
   9651              B73    see list-output-1
   A2                 C84

   BA987651          3    see list-output-2
   2                     C4

   9651              B73
   A2                 C84

   987651            B3
   A2                   C4

Mostly, but not always, the 9-C (fun) frames are consistently in their
correct corner.  This is true for the 1-4 (arg) frames as well; I do not
have any record of a deviation, so arg frames may be perfect.  The 5-8
(par) frames are the deviants, which seem to go the the Left Top corner.

I hope that this helps.  I shall do more as soon as I have time.

David


On Thu, 23 Mar 2017 08:59:49 +0100, martin rudalics <rudalics@gmx.at>
wrote:
>> I'll eventually push a "fix" to the repository but this
>  > will certainly not become part of the Emacs 25 series.
> 
> I've pushed a fix to master now.  So if you can work with master please
> update your copy and set, in your init file, the variable
> `x-gtk-use-window-move' to t and see whether your problem one is fixed
> now.
> 
> To everyone who sets negative frame positions in her programs or init
> file: Please try loading the attached file frame-position.el, evaluate
> it, call `frame-position-make' which will create twelve frames evenly
> distributed among the corners of your screen and finally run the
> function `frame-position-list' whose return value lists position and
> size information about these frames.  Here this gets me a list like
> 
> ((display-pixel-width . 1680)
>   (display-pixel-height . 1050)
>   (arg
>    (p-left . 40)
>    (p-top . 40)
>    (left . 40)
>    (top . 40)
>    (width . 750)
>    (height . 360))
>    ...
> (arg
>    (p-left . -40)
>    (p-top . -40)
>    (left . 904)
>    (top . 564)
>    (width . 750)
>    (height . 360)
>    (r-left . -26)
>    (r-top . -126))
>    ...
>   (fun
>    (p-left . -40)
>    (p-top . -40)
>    (left . 890)
>    (top . 564)
>    (width . 750)
>    (height . 360)
>    (r-left . -40)
>    (r-top . -126)))
> 
> The "arg" frames were produced by supplying sizes and positions via the
> argument list of `make-frame'.  The "par" frames were produced by
> calling `modify-frame-parameters' with the sizes and positions after the
> frame was made and making the frame visible after that.  The "fun"
> frames were produced by setting frame sizes and positions after the
> frame was made and making the frame visible after that.
> 
> p-left stands for the programmed and r-left for the realized left
> position.  p-top and r-top do that for the top position.  Ideally, these
> values are the same, often they aren't.  Here, the difference between
> the "arg" and the "fun" values is that the latter apparently already
> counts in 14 pixels for the scroll bar.
> 
> Besides that, the values are still far from correct on GNU/Linux since
> they do not account for the window manager decorations.  I would be
> interested if people get results that differ from the examples I gave
> above.
> 
> Thanks, martin

Attachment: Screenshot from 2017-03-28 12-14-48.png
Description: Binary data

Attachment: Screenshot from 2017-03-28 12-12-54.png
Description: Binary data

Attachment: frame-position-modified.el
Description: Text document

Attachment: list-output-unmodified
Description: Text document

Attachment: list-output-1
Description: Text document

Attachment: list-output-2
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]