I run into this issue so I tried to fix it to go into the emacs core code.
I followed the suggestion made in the bug and set box attribute to be
in the form (width . height). I tested it on windows and gnu/linux system
and on a mac os virtual machine but I am not sure to have tested all the
possible drawing as there are plenty of them. I tested both text box
and image relief.
I would appreciate that other people (especially those who use CAIRO
and those under real os x machine) confirm that the result is correct.
My simple test script :
----
(defun test_box_around_text (s)
(save-excursion
(goto-char (point-min))
(insert "ABCDE\nABCDE\nABCDE\n")
(put-text-property 8 11 'font-lock-face `(:box (:line-width ,s :color "red")))
;; (put-text-property 8 11 'font-lock-face `(:box (:line-width ,s :color "white" :style released-button)))
))
(test_box_around_text 4)
(test_box_around_text -4)
(test_box_around_text '(4 . -4))
(test_box_around_text '(-4 . 4))
(test_box_around_text '(-4 . -4))
(test_box_around_text '(4 . 0))
(test_box_around_text '(0 . 4))
(test_box_around_text '(4 . 1))
(test_box_around_text '(1 . 4))
(test_box_around_text '(-4 . 1))
(test_box_around_text '(1 . -4))
(save-excursion
(goto-char (point-min))
(insert-image
(create-image
"splash.svg" nil nil :relief 12)))
----
Thanks in advance,
Alexandre