Subject: bug#18381: 24.3.93; Diary can wrongly be displayed in Calendar's window

From: martin rudalics <[email-masked]>
Date: Fri, 05 Sep 2014 12:46:06 +0200

> The most conservative fix would seem to be to only change
 > calendar-basic-setup, where it calls diary-view-entries.

Is that sufficient?  I thought the problematic call is that of
`display-buffer' in `calendar-in-read-only-buffer'.  I must admit that I
have a hard time debugging calendar code.

 > I guess what we really want to say is "don't display the diary in the
 > window that you just displayed the calendar in" (is that possible?),

We can make that window softly dedicated to the calendar.  But that's
not very clean.

 > but
 > failing that, simply removing display-buffer-in-previous-window seems to
 > work. What's the cleanest way to do that? Binding
 > display-buffer-overriding-action or display-buffer-fallback-action
 > to an explicit list? display-buffer-fallback-action does not have the
 > friendliest format to make "remove element X" straightforward,
 > and is marked as a constant.

If we can identify the specific `display-buffer' or `pop-to-buffer'
calls in the calendar or diary code, we should pass it via the ACTION
argument.  That is, pass the value of `display-buffer-fallback-action'
with `display-buffer-in-previous-window' removed.

`display-buffer-overriding-action' is too drastic here and
`display-buffer-fallback-action' should not be used indeed.

Eventually, the code should be revised anyway.  For example, when a
window can be split, apparently the following sequence of actions is
performed:

(1) The calendar is displayed and its window is fit to the buffer.

(2) The diary is displayed in a window split off from the calendar
     window annihilating the effort of `fit-window-to-buffer' and leaving
     me with some two lines of the calendar.

martin