Subject: 24.3.50; image-mode-fit-frame fails to use all display space with image larger than display

From: [email-masked] (N. Jackson)
Date: Fri, 21 Feb 2014 21:00:14 -0400

Recipe:
=======
This recipe requires an image file bigger than the display (I used a
2048 x 1536 pixel JPEG file on a display with a resolution of 1366 x 768).

1. emacs -Q
2. C-x C-f big-image.jpg
3. M-x image-mode-fit-frame

Expected behaviour:
===================
Frame size increases to the maximum size that will fit on the display.

Actual behaviour:
=================
Frame size increases to a size slightly less that the maximum that will
fit on the display. There is a gap above the frame of about the height
of the title bar, a gap below the frame about a pixel high, and a gap to
the left of the frame maybe three pixels wide.

Furthermore, the size of this frame does not seem to be recorded
wherever such parameters normally are (in Emacs or the windowing
system?), so that if I maximise the frame (logo key and up arrow) and
then "restore" it (logo key and down arrow), it does not return to the
size it was before I maximised it, nor to the size it was before I
issued the image-mode-fit-frame command, but to some intermediate size.

Additional Comments:
====================
The name of the command image-mode-fit-frame seems ill-chosen. This is
not intended to fit the image to the frame, but rather the frame to the
image. The text on the menu -- "Fit Frame to Image" -- is clear. This
suggests the command should be called image-mode-fit-frame-to-image.

In GNU Emacs 24.3.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.8)
 of 2014-02-19 on moondust
Repository revision: 116484 [email-masked]
Windowing system distributor `Fedora Project', version 11.0.11404000
System Description:	Fedora release 19 (Schrödinger’s Cat)

Configured using:
 `configure --prefix=/home/nlj/local/'

Important settings:
  value of $LC_MONETARY: en_DK.utf8
  value of $LC_NUMERIC: en_DK.utf8
  value of $LC_TIME: en_DK.utf8
  value of $LANG: en_CA.utf8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Image[jpeg]

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
help-fns mail-prsvr mail-utils help-mode image-mode easymenu time-date
tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai
tai-viet lao korean japanese hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp
files text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)