Subject: 24.4; Line Spacing Centering Incorrect

From: Renato Ferreira <[email-masked]>
Date: Fri, 17 Apr 2015 03:41:58 -0300

When using line-spacing (> 0) custom variable, space is added ONLY AFTER the
line's content instead of CENTERING the line contents inside the space
added.

Space should be distributed around the contents.

The ideal spacing can be achieved by something like:
(add-text-properties (point-min) (point-max) '(line-spacing 2
                     line-height 1.1))

on mode change hook, but thats a hack, changes the text (triggers dirty
buffer) and its prone to bugs due to influence by other modes (like AC).

In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.7)
 of 2015-01-17 on bisson
Windowing system distributor `The X.Org Foundation', version 11.0.11701000
Configured using:
 `configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --with-x-toolkit=gtk3 --with-xft
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong
 --param=ssp-buffer-size=4' CPPFLAGS=-D_FORTIFY_SOURCE=2
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  eldoc-mode: t
  ido-ubiquitous-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-idle-scheduler-mode: t
  semantic-idle-scheduler-mode: t
  semantic-decoration-mode: t
  global-semantic-decoration-mode: t
  shell-dirtrack-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  show-paren-mode: t
  server-mode: t
  semantic-highlight-func-mode: t
  global-semantic-highlight-func-mode: t
  semantic-mode: t
  savehist-mode: t
  recentf-mode: t
  ido-vertical-mode: t
  guide-key-mode: t
  gud-tooltip-mode: t
  google-this-mode: t
  global-subword-mode: t
  subword-mode: t
  global-smartscan-mode: t
  smartscan-mode: t
  hl-line-mode: t
  global-git-gutter-mode: t
  git-gutter-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  flx-ido-mode: t
  ido-everywhere: t
  electric-pair-mode: t
  desktop-save-mode: t
  delete-selection-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-x C-r p o w e r <return> C-x C-f C-n C-n C-n C-f 
C-s h e i g h t C-n C-n C-n C-n C-p C-p C-p C-p M-n 
M-n M-n M-p M-n M-n M-p M-p M-n M-n M-p C-p C-n M-f 
M-f M-f M-n M-p C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-x C-e M-b M-b 
M-b C-b C-b C-x C-e C-p C-p M-n M-n M-p M-p M-p C-n 
C-n M-n M-n M-n M-p M-p M-p M-n M-n M-e C-s h e i g 
h t C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s 
C-s C-s C-s C-s C-s C-s C-s M-0 M-0 M-0 M-0 M-0 M-0 
M-0 C-x C-r i n i <return> C-x C-r h o C-n <return> 
C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n C-n 
C-n C-n C-n C-n C-a C-f C-f C-f C-f C-f C-f C-f C-f 
C-f | G <backspace> O <backspace> <backspace> C-c C-b 
C-c b C-x b C-g <f1> C-g <f1> w e m a c s b u C-n <return> 
M-x C-g C-x C-s C-/ C-/ C-/ C-/ C-/ C-/ C-x C-s C-s 
C-s C-s C-s C-g C-g C-x v n C-x C-g C-x v = M-o q C-x 
v = M-o q C-p C-p C-M-h <tab> C-n C-x C-s M-x s e n 
a b u g <M-backspace> e m a c s b u g C-n <return>

Recent messages:
Mark set [2 times]
Indenting region...done
(No changes need to be saved)

Load-path shadows:
~/.emacs.d/lisp/org/lisp/ob-gnuplot hides /usr/share/emacs/24.4/lisp/org/ob-gnuplot
~/.emacs.d/lisp/org/lisp/ob-sh hides /usr/share/emacs/24.4/lisp/org/ob-sh
~/.emacs.d/lisp/org/lisp/ob-C hides /usr/share/emacs/24.4/lisp/org/ob-C
~/.emacs.d/lisp/org/lisp/org-src hides /usr/share/emacs/24.4/lisp/org/org-src
~/.emacs.d/lisp/org/lisp/ob-fortran hides /usr/share/emacs/24.4/lisp/org/ob-fortran
~/.emacs.d/lisp/org/lisp/org-rmail hides /usr/share/emacs/24.4/lisp/org/org-rmail
~/.emacs.d/lisp/org/lisp/ox-md hides /usr/share/emacs/24.4/lisp/org/ox-md
~/.emacs.d/lisp/org/lisp/org-indent hides /usr/share/emacs/24.4/lisp/org/org-indent
~/.emacs.d/lisp/org/lisp/org-info hides /usr/share/emacs/24.4/lisp/org/org-info
~/.emacs.d/lisp/org/lisp/ox-html hides /usr/share/emacs/24.4/lisp/org/ox-html
~/.emacs.d/lisp/org/lisp/org-compat hides /usr/share/emacs/24.4/lisp/org/org-compat
~/.emacs.d/lisp/org/lisp/ox-icalendar hides /usr/share/emacs/24.4/lisp/org/ox-icalendar
~/.emacs.d/lisp/org/lisp/org-install hides /usr/share/emacs/24.4/lisp/org/org-install
~/.emacs.d/lisp/org/lisp/ob-R hides /usr/share/emacs/24.4/lisp/org/ob-R
~/.emacs.d/lisp/org/lisp/ob-ditaa hides /usr/share/emacs/24.4/lisp/org/ob-ditaa
~/.emacs.d/lisp/org/lisp/org-attach hides /usr/share/emacs/24.4/lisp/org/org-attach
~/.emacs.d/lisp/org/lisp/org-mouse hides /usr/share/emacs/24.4/lisp/org/org-mouse
~/.emacs.d/lisp/org/lisp/ob-lob hides /usr/share/emacs/24.4/lisp/org/ob-lob
~/.emacs.d/lisp/org/lisp/ox-odt hides /usr/share/emacs/24.4/lisp/org/ox-odt
~/.emacs.d/lisp/org/lisp/org-faces hides /usr/share/emacs/24.4/lisp/org/org-faces
~/.emacs.d/lisp/org/lisp/ob-awk hides /usr/share/emacs/24.4/lisp/org/ob-awk
~/.emacs.d/lisp/org/lisp/ob-emacs-lisp hides /usr/share/emacs/24.4/lisp/org/ob-emacs-lisp
~/.emacs.d/lisp/org/lisp/org-agenda hides /usr/share/emacs/24.4/lisp/org/org-agenda
~/.emacs.d/lisp/org/lisp/ox-beamer hides /usr/share/emacs/24.4/lisp/org/ox-beamer
~/.emacs.d/lisp/org/lisp/org-archive hides /usr/share/emacs/24.4/lisp/org/org-archive
~/.emacs.d/lisp/org/lisp/org-capture hides /usr/share/emacs/24.4/lisp/org/org-capture
~/.emacs.d/lisp/org/lisp/ox-man hides /usr/share/emacs/24.4/lisp/org/ox-man
~/.emacs.d/lisp/org/lisp/org-eshell hides /usr/share/emacs/24.4/lisp/org/org-eshell
~/.emacs.d/lisp/org/lisp/org-ctags hides /usr/share/emacs/24.4/lisp/org/org-ctags
~/.emacs.d/lisp/org/lisp/org-list hides /usr/share/emacs/24.4/lisp/org/org-list
~/.emacs.d/lisp/org/lisp/ob-makefile hides /usr/share/emacs/24.4/lisp/org/ob-makefile
~/.emacs.d/lisp/org/lisp/ob-shen hides /usr/share/emacs/24.4/lisp/org/ob-shen
~/.emacs.d/lisp/org/lisp/org-w3m hides /usr/share/emacs/24.4/lisp/org/org-w3m
~/.emacs.d/lisp/org/lisp/ob-sass hides /usr/share/emacs/24.4/lisp/org/ob-sass
~/.emacs.d/lisp/org/lisp/ob-lilypond hides /usr/share/emacs/24.4/lisp/org/ob-lilypond
~/.emacs.d/lisp/org/lisp/ob-octave hides /usr/share/emacs/24.4/lisp/org/ob-octave
~/.emacs.d/lisp/org/lisp/org-feed hides /usr/share/emacs/24.4/lisp/org/org-feed
~/.emacs.d/lisp/org/lisp/org-datetree hides /usr/share/emacs/24.4/lisp/org/org-datetree
~/.emacs.d/lisp/org/lisp/org-clock hides /usr/share/emacs/24.4/lisp/org/org-clock
~/.emacs.d/lisp/org/lisp/ob-tangle hides /usr/share/emacs/24.4/lisp/org/ob-tangle
~/.emacs.d/lisp/org/lisp/org-colview hides /usr/share/emacs/24.4/lisp/org/org-colview
~/.emacs.d/lisp/org/lisp/org-mhe hides /usr/share/emacs/24.4/lisp/org/org-mhe
~/.emacs.d/lisp/org/lisp/org-macs hides /usr/share/emacs/24.4/lisp/org/org-macs
~/.emacs.d/lisp/org/lisp/ox-latex hides /usr/share/emacs/24.4/lisp/org/ox-latex
~/.emacs.d/lisp/org/lisp/org-footnote hides /usr/share/emacs/24.4/lisp/org/org-footnote
~/.emacs.d/lisp/org/lisp/ox-publish hides /usr/share/emacs/24.4/lisp/org/ox-publish
~/.emacs.d/lisp/org/lisp/org-inlinetask hides /usr/share/emacs/24.4/lisp/org/org-inlinetask
~/.emacs.d/lisp/org/lisp/ob-asymptote hides /usr/share/emacs/24.4/lisp/org/ob-asymptote
~/.emacs.d/lisp/org/lisp/org-protocol hides /usr/share/emacs/24.4/lisp/org/org-protocol
~/.emacs.d/lisp/org/lisp/ob-keys hides /usr/share/emacs/24.4/lisp/org/ob-keys
~/.emacs.d/lisp/org/lisp/org-pcomplete hides /usr/share/emacs/24.4/lisp/org/org-pcomplete
~/.emacs.d/lisp/org/lisp/ob-python hides /usr/share/emacs/24.4/lisp/org/ob-python
~/.emacs.d/lisp/org/lisp/org-id hides /usr/share/emacs/24.4/lisp/org/org-id
~/.emacs.d/lisp/org/lisp/ob-scheme hides /usr/share/emacs/24.4/lisp/org/ob-scheme
~/.emacs.d/lisp/org/lisp/ob-sqlite hides /usr/share/emacs/24.4/lisp/org/ob-sqlite
~/.emacs.d/lisp/org/lisp/org-element hides /usr/share/emacs/24.4/lisp/org/org-element
~/.emacs.d/lisp/org/lisp/ob-latex hides /usr/share/emacs/24.4/lisp/org/ob-latex
~/.emacs.d/lisp/org/lisp/ob-matlab hides /usr/share/emacs/24.4/lisp/org/ob-matlab
~/.emacs.d/lisp/org/lisp/ob-perl hides /usr/share/emacs/24.4/lisp/org/ob-perl
~/.emacs.d/lisp/org/lisp/ob-eval hides /usr/share/emacs/24.4/lisp/org/ob-eval
~/.emacs.d/lisp/org/lisp/ob-exp hides /usr/share/emacs/24.4/lisp/org/ob-exp
~/.emacs.d/lisp/org/lisp/org hides /usr/share/emacs/24.4/lisp/org/org
~/.emacs.d/lisp/org/lisp/ob-table hides /usr/share/emacs/24.4/lisp/org/ob-table
~/.emacs.d/lisp/org/lisp/org-mobile hides /usr/share/emacs/24.4/lisp/org/org-mobile
~/.emacs.d/lisp/org/lisp/ox-ascii hides /usr/share/emacs/24.4/lisp/org/ox-ascii
~/.emacs.d/lisp/org/lisp/ob-haskell hides /usr/share/emacs/24.4/lisp/org/ob-haskell
~/.emacs.d/lisp/org/lisp/ob-ocaml hides /usr/share/emacs/24.4/lisp/org/ob-ocaml
~/.emacs.d/lisp/org/lisp/ob hides /usr/share/emacs/24.4/lisp/org/ob
~/.emacs.d/lisp/org/lisp/ob-scala hides /usr/share/emacs/24.4/lisp/org/ob-scala
~/.emacs.d/lisp/org/lisp/org-macro hides /usr/share/emacs/24.4/lisp/org/org-macro
~/.emacs.d/lisp/org/lisp/org-bbdb hides /usr/share/emacs/24.4/lisp/org/org-bbdb
~/.emacs.d/lisp/org/lisp/org-version hides /usr/share/emacs/24.4/lisp/org/org-version
~/.emacs.d/lisp/org/lisp/ob-sql hides /usr/share/emacs/24.4/lisp/org/ob-sql
~/.emacs.d/lisp/org/lisp/ox-texinfo hides /usr/share/emacs/24.4/lisp/org/ox-texinfo
~/.emacs.d/lisp/org/lisp/ob-screen hides /usr/share/emacs/24.4/lisp/org/ob-screen
~/.emacs.d/lisp/org/lisp/ob-js hides /usr/share/emacs/24.4/lisp/org/ob-js
~/.emacs.d/lisp/org/lisp/ob-java hides /usr/share/emacs/24.4/lisp/org/ob-java
~/.emacs.d/lisp/org/lisp/ob-core hides /usr/share/emacs/24.4/lisp/org/ob-core
~/.emacs.d/lisp/org/lisp/org-bibtex hides /usr/share/emacs/24.4/lisp/org/org-bibtex
~/.emacs.d/lisp/org/lisp/ob-org hides /usr/share/emacs/24.4/lisp/org/ob-org
~/.emacs.d/lisp/org/lisp/org-habit hides /usr/share/emacs/24.4/lisp/org/org-habit
~/.emacs.d/lisp/org/lisp/org-gnus hides /usr/share/emacs/24.4/lisp/org/org-gnus
~/.emacs.d/lisp/org/lisp/ob-mscgen hides /usr/share/emacs/24.4/lisp/org/ob-mscgen
~/.emacs.d/lisp/org/lisp/org-irc hides /usr/share/emacs/24.4/lisp/org/org-irc
~/.emacs.d/lisp/org/lisp/ob-ref hides /usr/share/emacs/24.4/lisp/org/ob-ref
~/.emacs.d/lisp/org/lisp/ob-io hides /usr/share/emacs/24.4/lisp/org/ob-io
~/.emacs.d/lisp/org/lisp/ob-clojure hides /usr/share/emacs/24.4/lisp/org/ob-clojure
~/.emacs.d/lisp/org/lisp/ob-picolisp hides /usr/share/emacs/24.4/lisp/org/ob-picolisp
~/.emacs.d/lisp/org/lisp/org-entities hides /usr/share/emacs/24.4/lisp/org/org-entities
~/.emacs.d/lisp/org/lisp/org-plot hides /usr/share/emacs/24.4/lisp/org/org-plot
~/.emacs.d/lisp/org/lisp/ob-lisp hides /usr/share/emacs/24.4/lisp/org/ob-lisp
~/.emacs.d/lisp/org/lisp/ob-maxima hides /usr/share/emacs/24.4/lisp/org/ob-maxima
~/.emacs.d/lisp/org/lisp/ob-ledger hides /usr/share/emacs/24.4/lisp/org/ob-ledger
~/.emacs.d/lisp/org/lisp/ox-org hides /usr/share/emacs/24.4/lisp/org/ox-org
~/.emacs.d/lisp/org/lisp/ob-css hides /usr/share/emacs/24.4/lisp/org/ob-css
~/.emacs.d/lisp/org/lisp/ox hides /usr/share/emacs/24.4/lisp/org/ox
~/.emacs.d/lisp/org/lisp/ob-ruby hides /usr/share/emacs/24.4/lisp/org/ob-ruby
~/.emacs.d/lisp/org/lisp/org-loaddefs hides /usr/share/emacs/24.4/lisp/org/org-loaddefs
~/.emacs.d/lisp/org/lisp/ob-calc hides /usr/share/emacs/24.4/lisp/org/ob-calc
~/.emacs.d/lisp/org/lisp/org-crypt hides /usr/share/emacs/24.4/lisp/org/org-crypt
~/.emacs.d/lisp/org/lisp/ob-comint hides /usr/share/emacs/24.4/lisp/org/ob-comint
~/.emacs.d/lisp/org/lisp/org-timer hides /usr/share/emacs/24.4/lisp/org/org-timer
~/.emacs.d/lisp/org/lisp/ob-dot hides /usr/share/emacs/24.4/lisp/org/ob-dot
~/.emacs.d/lisp/org/lisp/ob-plantuml hides /usr/share/emacs/24.4/lisp/org/ob-plantuml
~/.emacs.d/lisp/org/lisp/org-table hides /usr/share/emacs/24.4/lisp/org/org-table
~/.emacs.d/lisp/org/lisp/org-docview hides /usr/share/emacs/24.4/lisp/org/org-docview

Features:
(shadow sort bbdb-message mail-extr emacsbug message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums diff-mode view smex align tabify
face-remap semantic/edit mule-util semantic/tag-write semantic/tag-file
semantic/decorate/include misearch multi-isearch pcase eldoc inversion
semantic/db-global semantic/symref/global semantic/symref cedet-global
bbdb-mua bbdb-com crm mailabbrev ido-ubiquitous ido-completing-read+
auto-complete-c-headers auto-complete-clang org-mobile ox-odt rng-loc
rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns
nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html ox-ascii
ox-publish ox semantic/db-file data-debug cedet-files semantic/bovine/c
hideif cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs semantic/bovine/c-by semantic/lex-spp
semantic/bovine/gcc semantic/dep semantic/bovine/el thingatpt
semantic/db-el eieio-opt semantic/bovine semantic/ia
semantic/analyze/refs semantic/db-find semantic/db-ref semantic/senator
semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn
ido-bbdb-complete bbdb bbdb-site timezone offlineimap mode-line-cleaner
calfw-ical icalendar diary-lib diary-loaddefs calfw-org org-capture
org-element calfw holidays hol-loaddefs visual-regexp powerline
powerline-separators color powerline-themes ggtags etags ewoc
simple-secrets auto-complete-config semantic/db-mode semantic/db
semantic/idle semantic/format semantic/ctxt semantic/decorate/mode
semantic/tag-ls semantic/find semantic/decorate pulse tramp-cache
tramp-sh tramp tramp-compat tramp-loaddefs trampver shell vc-git flymake
compile org-pomodoro alert log4e notifications dbus xml gntp org-timer
org-clock org-checklist org-bullets org-w3m org-mouse org-irc org-info
org-id org-habit org-gnus org-docview doc-view jka-compr image-mode
dired org-bbdb ob-ditaa zenburn-theme yasnippet cl paren server
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local savehist recentf tree-widget ido-vertical-mode
guide-key s ucs-normalize popwin gud google-this url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
mailcap gnus gnus-ems nnheader mail-utils superword subword smartscan
hl-line git-gutter flycheck help-mode rx subr-x dash ede/speedbar
ede/files ede ede/base ede/auto ede/source eieio-base eieio-speedbar
speedbar sb-image ezimage dframe eieio-custom wid-edit cedet
auto-complete cl-macs gv popup flx-ido flx ido warnings elec-pair
desktop frameset delsel cus-start cus-load org-location-google-maps
org-agenda google-maps google-maps-static url-util url-parse auth-source
eieio byte-opt bytecomp byte-compile cconv eieio-core gnus-util mm-util
mail-prsvr password-cache url-vars google-maps-geocode google-maps-base
json advice help-fns info package epg-config org org-macro org-footnote
org-pcomplete pcomplete org-list org-faces org-entities noutline outline
easy-mmode org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-src ob-keys ob-comint comint ansi-color ring ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu easymenu
calendar cal-loaddefs edmacro kmacro cl-loaddefs cl-lib 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)

Memory information:
((conses 16 774051 206455)
 (symbols 48 55974 5)
 (miscs 40 859 828)
 (strings 32 142514 134626)
 (string-bytes 1 4289208)
 (vectors 16 111334)
 (vector-slots 8 3085914 59854)
 (floats 8 10767 2098)
 (intervals 56 2031 2955)
 (buffers 960 17)
 (heap 1024 103983 16154))