Subject: bug#16090: 24.3.50; [PATCH] error when jumping to a doc-view bookmark

From: Tassilo Horn <[email-masked]>
Date: Wed, 11 Dec 2013 20:08:25 +0100

Stefan Monnier <[email-masked]> writes:

>> Yes, but I think that doesn't suffice.  The problem with bookmarks is
>> that the display window function is run after the bookmark handler,
>> so we have no clue in which window the bookmarked page is going to be
>> shown.  It may be the current window, an existing other window (which
>> might already show another page of the doc and thus already has an
>> entry in `image-mode-winprops-alist'), or a completely new window.
>
> Why does it matter?

Please correct me if I'm wrong in the following.

The winprops alist contains for a doc-view buffer the shown page for any
window where the buffer has been shown plus a default entry that's used
when the doc-view buffer is going to be shown in a new window.

Let's assume I open foo.pdf with find-file and a single window.  The
default entry will get page 1 assigned and when it gets shown in a
window, a new winprops entry for that window is created, also with page
1.  Now I switch to page 2, then split and switch to page 3 in the new
window, so my layout is as follows (* = selected window):

    | Window 1 (P2) | *Window 2 (P3) |

Let's assume I have a bookmark on page 4 in foo.pdf.  Then

  a) bookmark-jump should change the page in window 2
  b) bookmark-jump-other-window should change the page in window 1

However, both first call `doc-view-bookmark-jump' and thereafter either
`switch-to-buffer' or `pop-to-buffer'.  How could the doc-view bookmark
handler cope with this situation?

Bye,
Tassilo