emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: org-agenda-dim-blocked-tasks don't use org-todo face


From: Ihor Radchenko
Subject: Re: org-agenda-dim-blocked-tasks don't use org-todo face
Date: Mon, 12 Dec 2022 09:59:11 +0000

Mark Kerr <mkerr23@gmail.com> writes:

> The org-todo face is used for todo keywords in non-blocked items.
>
> When org-agenda-dim-blocked-tasks is set to true, however, the todo keyword
> is instead displayed using org-agenda-dimmed-todo-face.
>
> The org-priority face, however, is still used for blocked tasks.
>
> Is this by design or due to an error on my part? Is there a possible
> workaround?

This appears to be an omission on Org part, related some overlay
implementation details in Emacs.

Can you try the attached patch?

>From 1bd6d8bd13deb9e7f57826ea492bbc88fddf5ee3 Mon Sep 17 00:00:00 2001
Message-Id: 
<1bd6d8bd13deb9e7f57826ea492bbc88fddf5ee3.1670839095.git.yantar92@posteo.net>
From: Ihor Radchenko <yantar92@posteo.net>
Date: Mon, 12 Dec 2022 12:56:11 +0300
Subject: [PATCH] org-agenda-dim-blocked-tasks: Prioritize face over other
 overlays

* lisp/org-agenda.el (org-agenda-dim-blocked-tasks): Use high overlays
priority when adding dimmed face.  Otherwise, contained overlays, like
created by `org-agenda-fontify-priorities', will take
priority (default Emacs behavior).

Reported-by: Mark Kerr <mkerr23@gmail.com>
Link: 
https://orgmode.org/list/CAM9qJ5+C3nvbNaJyq6ofRgPsuAMcaBD=2UN-n96Kb68NBbX3Dg@mail.gmail.com
---
 lisp/org-agenda.el | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index eda248938..05f2e3669 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -4166,7 +4166,9 @@ (defun org-agenda-dim-blocked-tasks (&optional _invisible)
                                   (line-beginning-position))
                                 (line-end-position))))
          (when todo-blocked
-           (overlay-put ov 'face 'org-agenda-dimmed-todo-face))
+           (overlay-put ov 'face 'org-agenda-dimmed-todo-face)
+            ;; Override other overlays.
+            (overlay-put ov 'priority 50))
          (when invisible
            (org-agenda-filter-hide-line 'todo-blocked)))
         (if (= (point-max) (line-end-position))
-- 
2.38.1

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]