Subject: Re: bug#52385: 29.0.50; Doc-View can't view separate pages in separate windows

From: Eli Zaretskii <[email-masked]>
Date: Sat, 18 Dec 2021 11:11:34 +0200

> From: Juri Linkov <[email-masked]>
> Date: Thu, 16 Dec 2021 19:04:12 +0200
> Cc: [email-masked]
> 
> But the regression is in overlay window priorities:
> when two overlays with 'window' properties are added
> over the same region, then in 27.2 the overlay where
> the overlay window matches the selected window is preferred
> over the overlay with another window.  But in 28.0.90
> the first overlay always wins.
> 
> Here is the shortest test case:
> 
>   (let ((o1 (make-overlay (point-min) (point-max) nil t))
>         (o2 (make-overlay (point-min) (point-max) nil t)))
>     (overlay-put o1 'window (selected-window))
>     (overlay-put o1 'display '(image :type xpm :file "left-arrow.xpm"))
>     (select-window (split-window))
>     (overlay-put o2 'window (selected-window))
>     (overlay-put o2 'display '(image :type xpm :file "right-arrow.xpm")))

Thanks for the recipe.

> In 27.2 it displays different images in different windows.  But
> in 28.0.90 only one images is displayed in both windows.

In fact, the problem existed only in Emacs 29, on the master branch.
Emacs 28 behaves correctly.

Lars, this happened due to one of the changes you made as part of
installing the support for the 'min-width' space display spec: a small
code fragment was moved inside handle_display_prop, in a way that
disabled the selection of overlays specific to windows, when those
overlays have the 'display' property.

I moved that code fragment back to where it belongs, and tested that
min-width still seems to work, both on the mode line and in the
xdisp-tests.el.  If you know about any other situation where that move
of the code was necessary, please show the recipe or tell the details.

Otherwise, this bug should be fixed now on the master branch.