Subject: bug#25943: 21.5 Frame Display Difficulties

From: <[email-masked]>
Date: Mon, 03 Apr 2017 18:35:14 -0600

;; This buffer is for text that is not saved, and for Lisp evaluation.
;; To create a file, visit it with C-x C-f and enter text in its buffer.


;; Immediately after invoking emacs with -Q.
(setq frame (make-frame '((tool-bar-lines . 0))) )
#<frame emacs@Thalia 0x131b0b0>
(list
 (display-monitor-attributes-list  frame)
 (frame-geometry  frame)
 (frame-edges  frame  'outer=edges)
 (frame-edges  frame  'native-edges)
 (frame-edges  frame  'internal-edges))
((((name . "VGA-1") (geometry 0 0 2048 1152) (workarea 0 38 2048 1114)
(mm-size 510 287) (frames #<frame *scratch* 0x12b3a50> #<frame *scratch*
0x131b0b0>) (source . "Gdk"))) ((outer-position 589 . 186) (outer-size 852
. 764) (external-border-size 10 . 10) (title-bar-size 0 . 27)
(menu-bar-external . t) (menu-bar-size 832 . 33) (tool-bar-external . t)
(tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width .
0)) (599 256 1431 940) (599 256 1431 940) (599 256 1431 940))
(window--dump-frame  frame)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0


;; Immediately after maximizing by clicking on the top-right +.  Note that
the value of frame is
;; different.
frame
#<frame *scratch* 0x131b0b0>
(list
 (display-monitor-attributes-list  frame)
 (frame-geometry  frame)
 (frame-edges  frame  'outer=edges)
 (frame-edges  frame  'native-edges)
 (frame-edges  frame  'internal-edges))
((((name . "VGA-1") (geometry 0 0 2048 1152) (workarea 0 38 2048 1114)
(mm-size 510 287) (frames #<frame *scratch* 0x12b3a50> #<frame *scratch*
0x131b0b0>) (source . "Gdk"))) ((outer-position 0 . 38) (outer-size 2048 .
1114) (external-border-size 0 . 1) (title-bar-size 0 . 28)
(menu-bar-external . t) (menu-bar-size 2048 . 33) (tool-bar-external . t)
(tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width .
0)) (0 100 2048 1151) (0 100 2048 1151) (0 100 2048 1151))
(window--dump-frame  frame)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0


;; Just after obtaining the information above the (real, not reported)
workarea expanded to its
;; "proper" maximized size with no intentional input from me.  I ran the
checks again, and the
;; results are different.
frame
#<frame *scratch* 0x131b0b0>
(list
 (display-monitor-attributes-list  frame)
 (frame-geometry  frame)
 (frame-edges  frame  'outer=edges)
 (frame-edges  frame  'native-edges)
 (frame-edges  frame  'internal-edges))
((((name . "VGA-1") (geometry 0 0 2048 1152) (workarea 0 38 2048 1114)
(mm-size 510 287) (frames #<frame *scratch* 0x12b3a50> #<frame *scratch*
0x131b0b0>) (source . "Gdk"))) ((outer-position 0 . 38) (outer-size 2048 .
1114) (external-border-size 0 . 1) (title-bar-size 0 . 28)
(menu-bar-external . t) (menu-bar-size 2048 . 33) (tool-bar-external . t)
(tool-bar-position . top) (tool-bar-size 0 . 0) (internal-border-width .
0)) (0 100 2048 1151) (0 100 2048 1151) (0 100 2048 1151))
(window--dump-frame  frame)
nil
frame pixel: 2048 x 1051   cols/lines: 205 x 55   units: 10 x 19
frame text pixel: 2016 x 1051   cols/lines: 201 x 55
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 2048 x 1032   new: 0
char left: 0   top: 0   size: 204 x 54   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 2016 x 1013   char: 201 x 53
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 1032   size: 2048 x 19   new: 0
char left: 0   top: 54   size: 204 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 2016 x 19   char: 201 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0


;; I started a new emacs and ran (setq frame (make-frame '((tool-bar-lines
. 0))) ).  Then I set the
;; fullscreen parameter with results indicated below.

(set-frame-parameter  frame  'fullscreen  'maximized)
;; The outersize changed to fullscreen, the (real) workarea did not change
in size, but it did
;; relocate to Left Top.  In other words the result was very similar to a
normal, problem, start.

(set-frame-parameter  frame  'fullscreen  'fullboth)
;; From the position above, this caused the outerframe to increase in
size, eliminating the frame
;; border.  The workarea moved, further Left Top, but did not change in
size.

(set-frame-parameter  frame  'fullscreen  'fullheight)
(set-frame-parameter  frame  'fullscreen  'fullwidth)
;; I have never used these, so I do not know how they are intended to
work.  After these, the shape
;; changed to fullheight and fullwidth, respectively.  The other dimension
changed to the width and
;; height of the workarea and the whole outershape moved so that it was
centered horizontally and
;; vertically respectively.  The attached screenshot shows one of these
configurations.

(setq  frame  (make-frame  '((tool-bar-lines . 0))) )
#<frame emacs@Thalia 0x133e2e0>
(set-frame-parameter  frame  'fullscreen  'maximized)
nil
(window--dump-frame  frame)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0

(set-frame-parameter  frame  'fullscreen  'fullboth)
nil
(window--dump-frame  frame)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0

(set-frame-parameter  frame  'fullscreen  'fullheight)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0

(set-frame-parameter  frame  'fullscreen  'fullwidth)
nil
(window--dump-frame  frame)
nil
frame pixel: 832 x 684   cols/lines: 84 x 36   units: 10 x 19
frame text pixel: 800 x 684   cols/lines: 80 x 36
tool: 0  scroll: 16/0  fringe: 16  border: 0  right: 0  bottom: 0

#<window 5 on *scratch*>   parent: nil
pixel left: 0   top: 0   size: 832 x 665   new: 0
char left: 0   top: 0   size: 83 x 35   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 646   char: 80 x 34
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 19  divider: 0

#<window 6 on  *Minibuf-0*>   parent: nil
pixel left: 0   top: 665   size: 832 x 19   new: 0
char left: 0   top: 35   size: 83 x 1   new: 0
normal: 1.0 x 1.0   new: 0
body pixel: 800 x 19   char: 80 x 1
width left fringe: 8  left margin: 0  right margin: 0
width right fringe: 8  scroll-bar: 16  divider: 0
height header-line: 0  mode-line: 0  divider: 0