From 4328455c2d99ae118fa36401ea89d0e7cbb8c815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Le=20Gouguec?= Date: Thu, 9 Jul 2020 16:02:49 +0200 Subject: [PATCH] Fix org-fontify-whole-*-line by setting face extension (bug#42184) * lisp/org/org-compat.el (org--set-faces-extend): New function to set face extension, for Emacs versions where this attribute exists. * lisp/org/org.el (org-mode): Call it to set the extend attribute of relevant faces to the correct value. * lisp/org/org-faces.el (org-block): Set face extension beyond EOL. * etc/themes/leuven-theme.el (class): Remove obsolete face. --- etc/themes/leuven-theme.el | 1 - lisp/org/org-compat.el | 4 ++++ lisp/org/org-faces.el | 2 +- lisp/org/org.el | 6 +++++- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el index 4d8568b7d8..4d8cf0f869 100644 --- a/etc/themes/leuven-theme.el +++ b/etc/themes/leuven-theme.el @@ -515,7 +515,6 @@ leuven `(org-archived ((,class (:foreground "gray70")))) `(org-beamer-tag ((,class (:box (:line-width 1 :color "#FABC18") :foreground "#2C2C2C" :background "#FFF8D0")))) `(org-block ((,class ,code-block))) - `(org-block-background ((,class (:background "#FFFFE0")))) `(org-block-begin-line ((,class (:underline "#A7A6AA" :foreground "#555555" :background "#E2E1D5")))) `(org-block-end-line ((,class (:overline "#A7A6AA" :foreground "#555555" :background "#E2E1D5")))) `(org-checkbox ((,class (:weight bold :box (:line-width 1 :style pressed-button) :foreground "white" :background "#777777")))) diff --git a/lisp/org/org-compat.el b/lisp/org/org-compat.el index c1aaf17ca2..fcc325e475 100644 --- a/lisp/org/org-compat.el +++ b/lisp/org/org-compat.el @@ -101,6 +101,10 @@ org-table1-hline-regexp (defun org-time-convert-to-list (time) (seconds-to-time (float-time time)))) +(defun org--set-faces-extend (faces extend-p) + (when (fboundp 'set-face-extend) + (mapc (lambda (f) (set-face-extend f extend-p)) faces))) + ;;; Emacs < 26.1 compatibility diff --git a/lisp/org/org-faces.el b/lisp/org/org-faces.el index 30eab9bc6b..eba5a484ac 100644 --- a/lisp/org/org-faces.el +++ b/lisp/org/org-faces.el @@ -393,7 +393,7 @@ org-document-info-keyword "Face for #+TITLE:, #+AUTHOR:, #+EMAIL: and #+DATE: keywords." :group 'org-faces) -(defface org-block '((t :inherit shadow)) +(defface org-block '((t (:extend t :inherit shadow))) "Face text in #+begin ... #+end blocks. For source-blocks `org-src-block-faces' takes precedence." :group 'org-faces diff --git a/lisp/org/org.el b/lisp/org/org.el index 568f5b9b87..fb31336ea4 100644 --- a/lisp/org/org.el +++ b/lisp/org/org.el @@ -4944,7 +4944,11 @@ org-mode ;; Try to set `org-hide' face correctly. (let ((foreground (org-find-invisible-foreground))) (when foreground - (set-face-foreground 'org-hide foreground)))) + (set-face-foreground 'org-hide foreground))) + ;; Set face extension as requested. + (org--set-faces-extend '(org-block-begin-line org-block-end-line) + org-fontify-whole-block-delimiter-line) + (org--set-faces-extend org-level-faces org-fontify-whole-heading-line)) ;; Update `customize-package-emacs-version-alist' (add-to-list 'customize-package-emacs-version-alist -- 2.28.0