Subject: bug#3643: emacs -Q doesn't fit on the user's screen

From: [email-masked]
Date: Wed, 20 Jan 2010 15:31:48 +0800

>>>>> "JD" == Jan Djärv <[email-masked]> writes:
JD> Just put the cursor on one character in Emacs *scratch* buffer and do
JD> C-u C-x =
JD> That gives you the font.
        character: ; (59, #o73, #x3b)
preferred charset: ascii (ASCII (ISO646 IRV))
       code point: 0x3B
           syntax: < 	which means: comment
         category: .:Base, a:ASCII, l:Latin, r:Roman
      buffer code: #x3B
        file code: #x3B (encoded by coding system utf-8-unix)
          display: by this font (glyph code)
    xft:-unknown-DejaVu Sans Mono-normal-normal-normal-*-14-*-*-*-m-0-iso10646-1 (#x1E)

Character code properties: customize what to show
  name: SEMICOLON
  general-category: Po (Punctuation, Other)

There are text properties here:
  face                 font-lock-comment-delimiter-face
  fontified            t
JD> % xwininfo -all
JD> and click in Emacs gives window sizes.
xwininfo: Window id: 0x1800016 "[email-masked]"

  Root window id: 0xff (the root window) (has no name)
  Parent window id: 0xc17c1b (has no name)
     2 children:
     0x1800033 (has no name): ()  672x680+0+62  +4+98
     0x1800017 (has no name): ()  1x1+-1+-1  +3+35

  Absolute upper-left X:  4
  Absolute upper-left Y:  36
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 672
  Height: 742
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +4+36  -348+36  -348--10  +4--10
  -geometry 80x40+0+12

  Bit gravity: NorthWestGravity
  Window gravity: NorthWestGravity
  Backing-store hint: NotUseful
  Backing-planes to be preserved: 0xffffffff
  Backing pixel: 0
  Save-unders: No

  Someone wants these events:
      KeyPress
      KeyRelease
      ButtonPress
      ButtonRelease
      EnterWindow
      LeaveWindow
      PointerMotion
      Exposure
      VisibilityChange
      StructureNotify
      FocusChange
      PropertyChange
      ColormapChange
  Do not propagate these events:
  Override redirection?: No

  Window manager hints:
      Client accepts input or input focus: Yes
      Initial state is Normal State

  Normal window size hints:
      Program supplied minimum size: 48 by 96
      Program supplied base size: 32 by 62
      Program supplied x resize increment: 8
      Program supplied y resize increment: 17
      Program supplied minimum size in resize increments: 6 by 5
      Program supplied base size in resize increments:  4 by 3
      Program supplied window gravity: NorthWestGravity
  No zoom window size hints defined

  No window shape defined
  No border shape defined
JD> % xwininfo -frame
JD> and click the window manager title bar for Emacs gives size of the title bar.
xwininfo: Window id: 0xc000bf (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  742
  Relative upper-left X:  0
  Relative upper-left Y:  742
  Width: 1024
  Height: 26
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: yes
  Corners:  +0+742  -0+742  -0-0  +0-0
  -geometry 1024x26+0-0
JD> That last part may be it though.  As the title bar size isn't known at
JD> frame create time, we can't adjust for it.  I'll have to think about
JD> that.
All I know is firefox etc. never was bigger than xwindows.
JD> A better strategy might be if 40 lines doesn't seem to fit, just try 20.
JD> If that doesn't seem to fit, try 10.
Well if it can detect that it can't fit then maybe it can detect how big
it should be.
OK, I did xwininfo -all in Firefox, just for comparison. It fits
perfectly. Of course this is not a vanilla install of firefox, all I
know is the vertical dimensions of emacs should be no bigger, as this
fits perfectly.
xwininfo: Window id: 0x1a00039 "WWWOFFLE Index - Last Time Online Pages - Iceweasel"

  Root window id: 0xff (the root window) (has no name)
  Parent window id: 0xc18ec6 (has no name)
     2 children:
     0x1a000f3 (has no name): ()  1020x719+0+0  +4+23
        1 child:
        0x1a0008f (has no name): ()  1020x719+0+0  +4+23
           1 child:
           0x1a000f2 (has no name): ()  1020x604+0+93  +4+116
              1 child:
              0x1a0019a (has no name): ()  1005x589+0+0  +4+116
     0x1a0003a (has no name): ()  1x1+-1+-1  +3+22

  Absolute upper-left X:  4
  Absolute upper-left Y:  23
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1020
  Height: 719
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +4+23  -0+23  -0-26  +4-26
  -geometry 1020x719+0+-1

  Bit gravity: NorthWestGravity
  Window gravity: NorthWestGravity
  Backing-store hint: NotUseful
  Backing-planes to be preserved: 0xffffffff
  Backing pixel: 0
  Save-unders: No

  Someone wants these events:
      KeyPress
      KeyRelease
      ButtonPress
      ButtonRelease
      EnterWindow
      LeaveWindow
      PointerMotion
      Exposure
      VisibilityChange
      StructureNotify
      FocusChange
      PropertyChange
      ColormapChange
  Do not propagate these events:
  Override redirection?: No

  Window manager hints:
      Client accepts input or input focus: Yes
      Initial state is Normal State

  Normal window size hints:
      Program supplied minimum size: 0 by 0
      Program supplied window gravity: NorthWestGravity
  No zoom window size hints defined

  No window shape defined
  No border shape defined