Thanks for the tip on `calendar-make-temp-face'. It gets even weirder now.
If I use a face, that function does not even seem to get called, so it
seems to work.
If I use the anonymous face though, it does get called, and I see the
inconsistent behavior.
However, if I edebug `calendar-make-temp-face' and step through each line,
then it works the same as using a face. And, after that it seems to work
most of the time.
"Do not call this directly from Lisp code; use ‘defface’ instead." seems
like a weird message. Where else would one use this?
Anyway, thanks again, I have stumbled on a solution, which is to modify
`calendar-mark-visible-date' so it does not use `calendar-make-temp-face' .
It is a small change of:
(t ; attr list
(overlay-put
(make-overlay (1- (point)) (1+ (point))) 'face
(calendar-make-temp-face mark)))
to
(t ; attr list
(overlay-put
(make-overlay (1- (point)) (1+ (point))) 'face
mark))
That seems to work.
A simpler way though is to just put the overlays on manually in the hook,
e.g.
(let* ((mark-calendar (lambda ()
;; Goto today
(save-excursion
(calendar-cursor-to-visible-date (read (format-time-string "(%m %d %Y)")))
(overlay-put
(make-overlay (1- (point)) (1+ (point))) 'face
(list :foreground "blue" :weight 'bold)))))
(calendar-today-visible-hook))
(add-hook 'calendar-today-visible-hook
mark-calendar)
(org-read-date))
I can live with that solution. Thanks for the assist!
On Wed, Feb 14, 2024 at 3:14 PM Ihor Radchenko <[email protected]> wrote:
> John Kitchin <[email protected]> writes:
>
> > why does it work with a face though?
>
> It really does. That's confusing. And proves that Emacs is smart enough
> to invert cursor color in some situations.
>
> My only guess is that `calendar-make-temp-face' is using `make-face'
> incorrectly. I guess that
>
> Do not call this directly from Lisp code; use `defface' instead.
>
> in `make-face' docstring is there for a reason.
> Maybe report this as Emacs bug in calendar.el?
>
> --
> 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>
>
--
John
-----------------------------------
Professor John Kitchin (he/his)
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
https://kitchingroup.cheme.cmu.edu
https://pointbreezepubs.gumroad.com/ pycse bookstore