unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
@ 2013-03-06  3:40 E Sabof
  2013-03-06  8:05 ` Tassilo Horn
  2013-03-06 18:16 ` Stefan Monnier
  0 siblings, 2 replies; 51+ messages in thread
From: E Sabof @ 2013-03-06  3:40 UTC (permalink / raw)
  To: 13887

[-- Attachment #1: Type: text/plain, Size: 125 bytes --]

It tries to up-scale the available bitmap - leading to a loss
of quality, instead of re-rendering the page from vector data.

[-- Attachment #2: Type: text/html, Size: 147 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06  3:40 bug#13887: 24.3; doc-view will render blurry images when image-magick is available E Sabof
@ 2013-03-06  8:05 ` Tassilo Horn
  2013-03-06 12:13   ` E Sabof
  2013-03-06 18:16 ` Stefan Monnier
  1 sibling, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-06  8:05 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> It tries to up-scale the available bitmap - leading to a loss of
> quality, instead of re-rendering the page from vector data.

You mean, it up-scales when you hit +?  That's a feature, because
up-scaling is much faster than reconverting.  To make use of the
feature, you should set `doc-view-resolution' to some reasonably high
value.  I use this

  (setq doc-view-resolution 200)

and it works very well.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06  8:05 ` Tassilo Horn
@ 2013-03-06 12:13   ` E Sabof
  2013-03-06 13:01     ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-06 12:13 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 886 bytes --]

I've tried it, indeed it works much better. Might it be possible to store
the the "native" size, and raise the resolution automatically when the zoom
exceeds it?

On a side note, might it be also possible to horizontally center the image?
There is a pretty straight-forward way to do it, used in the about-emacs
screen.

Evgeni


On Wed, Mar 6, 2013 at 8:05 AM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > It tries to up-scale the available bitmap - leading to a loss of
> > quality, instead of re-rendering the page from vector data.
>
> You mean, it up-scales when you hit +?  That's a feature, because
> up-scaling is much faster than reconverting.  To make use of the
> feature, you should set `doc-view-resolution' to some reasonably high
> value.  I use this
>
>   (setq doc-view-resolution 200)
>
> and it works very well.
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 1369 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06 12:13   ` E Sabof
@ 2013-03-06 13:01     ` Tassilo Horn
  2013-03-06 14:19       ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-06 13:01 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> I've tried it, indeed it works much better. Might it be possible to
> store the the "native" size, and raise the resolution automatically
> when the zoom exceeds it?

Well, the resolution should be increased and the doc reconverted when
the up-scaled image becomes blurry.  But how should emacs know when you
think it becomes blurry?

> On a side note, might it be also possible to horizontally center the
> image?  There is a pretty straight-forward way to do it, used in the
> about-emacs screen.

I guess this could be done somehow.  But do you want to center to make
the contents a bit larger and not to see the margins?  If so, then
slicing to the bounding box (`s b') followed by fitting to width (`W')
may be the better approach.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06 13:01     ` Tassilo Horn
@ 2013-03-06 14:19       ` E Sabof
  2013-03-06 19:43         ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-06 14:19 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 1790 bytes --]

This function gives the native pixel dimensions of an image:

(defun es-image-file-pixel-dimensions (file)
  (let* ((type (image-type file nil nil))
         (spec (list 'image :type type :file file)))
    (image-size spec t)))

When

(> (getf (cdr (doc-view-current-image)) :width)
   (car (es-image-file-pixel-dimensions
         (getf (cdr (doc-view-current-image)) :file))))

there is quality loss.

What I don't want to see is margins having a different width - for the same
reasons you wouldn't put a photograph in a frame in the top left corner.
Ideally I'd also center vertically (should the image be shorter than the
window) and add a window-configuration-change-hook (or there might be
an appropriate display-spec), so it's always centered. Unfortunately no
image-viewer that currently comes with emacs (image-mode ,doc-view-mode
,image-dired-display-image-mode) does this.

Evgeni


On Wed, Mar 6, 2013 at 1:01 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > I've tried it, indeed it works much better. Might it be possible to
> > store the the "native" size, and raise the resolution automatically
> > when the zoom exceeds it?
>
> Well, the resolution should be increased and the doc reconverted when
> the up-scaled image becomes blurry.  But how should emacs know when you
> think it becomes blurry?
>
> > On a side note, might it be also possible to horizontally center the
> > image?  There is a pretty straight-forward way to do it, used in the
> > about-emacs screen.
>
> I guess this could be done somehow.  But do you want to center to make
> the contents a bit larger and not to see the margins?  If so, then
> slicing to the bounding box (`s b') followed by fitting to width (`W')
> may be the better approach.
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 2570 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06  3:40 bug#13887: 24.3; doc-view will render blurry images when image-magick is available E Sabof
  2013-03-06  8:05 ` Tassilo Horn
@ 2013-03-06 18:16 ` Stefan Monnier
  1 sibling, 0 replies; 51+ messages in thread
From: Stefan Monnier @ 2013-03-06 18:16 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

> It tries to up-scale the available bitmap - leading to a loss
> of quality, instead of re-rendering the page from vector data.

In Emacs's trunk you can set doc-view-scale-internally to nil.


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06 14:19       ` E Sabof
@ 2013-03-06 19:43         ` Tassilo Horn
  2013-03-07 15:17           ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-06 19:43 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> This function gives the native pixel dimensions of an image:
>
> (defun es-image-file-pixel-dimensions (file)
>   (let* ((type (image-type file nil nil))
>          (spec (list 'image :type type :file file)))
>     (image-size spec t)))
>
> When
>
> (> (getf (cdr (doc-view-current-image)) :width)
>    (car (es-image-file-pixel-dimensions
>          (getf (cdr (doc-view-current-image)) :file))))
>
> there is quality loss.

Hm, ok.  Maybe I'll give it a whirl.

> What I don't want to see is margins having a different width - for the
> same reasons you wouldn't put a photograph in a frame in the top left
> corner.

Could you test-drive this patch.  It implements horizontal centering of
the image.

--8<---------------cut here---------------start------------->8---
=== modified file 'lisp/doc-view.el'
--- lisp/doc-view.el	2013-02-28 04:02:36 +0000
+++ lisp/doc-view.el	2013-03-06 19:35:43 +0000
@@ -1250,23 +1250,34 @@
   (when doc-view-pending-cache-flush
     (clear-image-cache)
     (setq doc-view-pending-cache-flush nil))
-  (let ((ol (doc-view-current-overlay))
-        (image (if (and file (file-readable-p file))
-		   (if (not (and doc-view-scale-internally
-                                 (fboundp 'imagemagick-types)))
-		       (apply 'create-image file doc-view--image-type nil args)
-		     (unless (member :width args)
-		       (setq args `(,@args :width ,doc-view-image-width)))
-		     (apply 'create-image file 'imagemagick nil args))))
-        (slice (doc-view-current-slice)))
+  (let* ((ol (doc-view-current-overlay))
+	 (image (if (and file (file-readable-p file))
+		    (if (not (and doc-view-scale-internally
+				  (fboundp 'imagemagick-types)))
+			(apply 'create-image file doc-view--image-type nil args)
+		      (unless (member :width args)
+			(setq args `(,@args :width ,doc-view-image-width)))
+		      (apply 'create-image file 'imagemagick nil args))))
+	 (slice (doc-view-current-slice))
+	 (img-width (car (image-size image)))
+	 (displayed-img-width (if slice
+				  (* (/ (float (nth 2 slice))
+					(car (image-size image 'pixels)))
+				     img-width)
+				img-width))
+	 (window-width (window-width (selected-window))))
     (setf (doc-view-current-image) image)
     (move-overlay ol (point-min) (point-max))
+    (when (> window-width displayed-img-width)
+      (overlay-put ol 'before-string
+    		   (propertize " " 'display
+    			       `(space :align-to (+ center (-0.5 . ,displayed-img-width))))))
     (overlay-put ol 'display
                  (cond
                   (image
                    (if slice
                        (list (cons 'slice slice) image)
-                     image))
+		     image))
                   ;; We're trying to display a page that doesn't exist.
                   (doc-view-current-converter-processes
                    ;; Maybe the page doesn't exist *yet*.
--8<---------------cut here---------------end--------------->8---

>  Ideally I'd also center vertically (should the image be shorter than
> the window)

I think vertical centering is a bit more tricky since there's nothing
like :align-to or vertically stretchable spaces...

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-06 19:43         ` Tassilo Horn
@ 2013-03-07 15:17           ` E Sabof
  2013-03-07 15:55             ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-07 15:17 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 3950 bytes --]

I had a look at it, there are some issues with zooming. It doesn't work
when I open a document that is larger than the window, and sometimes in
other cases.


On Wed, Mar 6, 2013 at 7:43 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > This function gives the native pixel dimensions of an image:
> >
> > (defun es-image-file-pixel-dimensions (file)
> >   (let* ((type (image-type file nil nil))
> >          (spec (list 'image :type type :file file)))
> >     (image-size spec t)))
> >
> > When
> >
> > (> (getf (cdr (doc-view-current-image)) :width)
> >    (car (es-image-file-pixel-dimensions
> >          (getf (cdr (doc-view-current-image)) :file))))
> >
> > there is quality loss.
>
> Hm, ok.  Maybe I'll give it a whirl.
>
> > What I don't want to see is margins having a different width - for the
> > same reasons you wouldn't put a photograph in a frame in the top left
> > corner.
>
> Could you test-drive this patch.  It implements horizontal centering of
> the image.
>
> --8<---------------cut here---------------start------------->8---
> === modified file 'lisp/doc-view.el'
> --- lisp/doc-view.el    2013-02-28 04:02:36 +0000
> +++ lisp/doc-view.el    2013-03-06 19:35:43 +0000
> @@ -1250,23 +1250,34 @@
>    (when doc-view-pending-cache-flush
>      (clear-image-cache)
>      (setq doc-view-pending-cache-flush nil))
> -  (let ((ol (doc-view-current-overlay))
> -        (image (if (and file (file-readable-p file))
> -                  (if (not (and doc-view-scale-internally
> -                                 (fboundp 'imagemagick-types)))
> -                      (apply 'create-image file doc-view--image-type nil
> args)
> -                    (unless (member :width args)
> -                      (setq args `(,@args :width ,doc-view-image-width)))
> -                    (apply 'create-image file 'imagemagick nil args))))
> -        (slice (doc-view-current-slice)))
> +  (let* ((ol (doc-view-current-overlay))
> +        (image (if (and file (file-readable-p file))
> +                   (if (not (and doc-view-scale-internally
> +                                 (fboundp 'imagemagick-types)))
> +                       (apply 'create-image file doc-view--image-type nil
> args)
> +                     (unless (member :width args)
> +                       (setq args `(,@args :width ,doc-view-image-width)))
> +                     (apply 'create-image file 'imagemagick nil args))))
> +        (slice (doc-view-current-slice))
> +        (img-width (car (image-size image)))
> +        (displayed-img-width (if slice
> +                                 (* (/ (float (nth 2 slice))
> +                                       (car (image-size image 'pixels)))
> +                                    img-width)
> +                               img-width))
> +        (window-width (window-width (selected-window))))
>      (setf (doc-view-current-image) image)
>      (move-overlay ol (point-min) (point-max))
> +    (when (> window-width displayed-img-width)
> +      (overlay-put ol 'before-string
> +                  (propertize " " 'display
> +                              `(space :align-to (+ center (-0.5 .
> ,displayed-img-width))))))
>      (overlay-put ol 'display
>                   (cond
>                    (image
>                     (if slice
>                         (list (cons 'slice slice) image)
> -                     image))
> +                    image))
>                    ;; We're trying to display a page that doesn't exist.
>                    (doc-view-current-converter-processes
>                     ;; Maybe the page doesn't exist *yet*.
> --8<---------------cut here---------------end--------------->8---
>
> >  Ideally I'd also center vertically (should the image be shorter than
> > the window)
>
> I think vertical centering is a bit more tricky since there's nothing
> like :align-to or vertically stretchable spaces...
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 4794 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-07 15:17           ` E Sabof
@ 2013-03-07 15:55             ` Tassilo Horn
  2013-03-07 16:15               ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-07 15:55 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> I had a look at it, there are some issues with zooming. It doesn't
> work when I open a document that is larger than the window,

Does that mean that you'd like to set the hscoll when the window is
smaller than the images so that the center of the image is displayed at
the center of the window?

Hm, this could at least be done once when initially opening some
document.  When switching pages, the current hscroll is preserved and I
consider that a good thing.  It shouldn't re-center then.

> and sometimes in other cases.

I know there were some issues/errors when the image of a page isn't
there already.  That should be fixed by this version of the patch.

--8<---------------cut here---------------start------------->8---
=== modified file 'lisp/doc-view.el'
--- lisp/doc-view.el    2013-02-28 04:02:36 +0000
+++ lisp/doc-view.el    2013-03-07 08:14:09 +0000
@@ -1250,7 +1250,7 @@
   (when doc-view-pending-cache-flush
     (clear-image-cache)
     (setq doc-view-pending-cache-flush nil))
-  (let ((ol (doc-view-current-overlay))
+  (let* ((ol (doc-view-current-overlay))
         (image (if (and file (file-readable-p file))
                   (if (not (and doc-view-scale-internally
                                  (fboundp 'imagemagick-types)))
@@ -1258,9 +1258,20 @@
                     (unless (member :width args)
                       (setq args `(,@args :width ,doc-view-image-width)))
                     (apply 'create-image file 'imagemagick nil args))))
-        (slice (doc-view-current-slice)))
+        (slice (doc-view-current-slice))
+        (img-width (and image (car (image-size image))))
+        (displayed-img-width (if (and image slice)
+                                 (* (/ (float (nth 2 slice))
+                                       (car (image-size image 'pixels)))
+                                    img-width)
+                               img-width))
+        (window-width (window-width (selected-window))))
     (setf (doc-view-current-image) image)
     (move-overlay ol (point-min) (point-max))
+    (when (and image (> window-width displayed-img-width))
+      (overlay-put ol 'before-string
+                  (propertize " " 'display
+                              `(space :align-to (+ center (-0.5 . ,displayed-img-width))))))
     (overlay-put ol 'display
                  (cond
                   (image
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-07 15:55             ` Tassilo Horn
@ 2013-03-07 16:15               ` E Sabof
  2013-03-07 22:57                 ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-07 16:15 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 2848 bytes --]

I mean pressing + or - moves the page horizontally, instead of changing the
size. I think the way it opens the document is ok.

I'll have a look at the patch and let you know.

Evgeni


On Thu, Mar 7, 2013 at 3:55 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > I had a look at it, there are some issues with zooming. It doesn't
> > work when I open a document that is larger than the window,
>
> Does that mean that you'd like to set the hscoll when the window is
> smaller than the images so that the center of the image is displayed at
> the center of the window?
>
> Hm, this could at least be done once when initially opening some
> document.  When switching pages, the current hscroll is preserved and I
> consider that a good thing.  It shouldn't re-center then.
>
> > and sometimes in other cases.
>
> I know there were some issues/errors when the image of a page isn't
> there already.  That should be fixed by this version of the patch.
>
> --8<---------------cut here---------------start------------->8---
> === modified file 'lisp/doc-view.el'
> --- lisp/doc-view.el    2013-02-28 04:02:36 +0000
> +++ lisp/doc-view.el    2013-03-07 08:14:09 +0000
> @@ -1250,7 +1250,7 @@
>    (when doc-view-pending-cache-flush
>      (clear-image-cache)
>      (setq doc-view-pending-cache-flush nil))
> -  (let ((ol (doc-view-current-overlay))
> +  (let* ((ol (doc-view-current-overlay))
>          (image (if (and file (file-readable-p file))
>                    (if (not (and doc-view-scale-internally
>                                   (fboundp 'imagemagick-types)))
> @@ -1258,9 +1258,20 @@
>                      (unless (member :width args)
>                        (setq args `(,@args :width ,doc-view-image-width)))
>                      (apply 'create-image file 'imagemagick nil args))))
> -        (slice (doc-view-current-slice)))
> +        (slice (doc-view-current-slice))
> +        (img-width (and image (car (image-size image))))
> +        (displayed-img-width (if (and image slice)
> +                                 (* (/ (float (nth 2 slice))
> +                                       (car (image-size image 'pixels)))
> +                                    img-width)
> +                               img-width))
> +        (window-width (window-width (selected-window))))
>      (setf (doc-view-current-image) image)
>      (move-overlay ol (point-min) (point-max))
> +    (when (and image (> window-width displayed-img-width))
> +      (overlay-put ol 'before-string
> +                  (propertize " " 'display
> +                              `(space :align-to (+ center (-0.5 .
> ,displayed-img-width))))))
>      (overlay-put ol 'display
>                   (cond
>                    (image
> --8<---------------cut here---------------end--------------->8---
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 3714 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-07 16:15               ` E Sabof
@ 2013-03-07 22:57                 ` E Sabof
  2013-03-08  7:57                   ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-07 22:57 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 3046 bytes --]

Couldn't tell the difference to be honest.

Evgeni


On Thu, Mar 7, 2013 at 4:15 PM, E Sabof <esabof@gmail.com> wrote:

> I mean pressing + or - moves the page horizontally, instead of changing
> the size. I think the way it opens the document is ok.
>
> I'll have a look at the patch and let you know.
>
> Evgeni
>
>
> On Thu, Mar 7, 2013 at 3:55 PM, Tassilo Horn <tsdh@gnu.org> wrote:
>
>> E Sabof <esabof@gmail.com> writes:
>>
>> > I had a look at it, there are some issues with zooming. It doesn't
>> > work when I open a document that is larger than the window,
>>
>> Does that mean that you'd like to set the hscoll when the window is
>> smaller than the images so that the center of the image is displayed at
>> the center of the window?
>>
>> Hm, this could at least be done once when initially opening some
>> document.  When switching pages, the current hscroll is preserved and I
>> consider that a good thing.  It shouldn't re-center then.
>>
>> > and sometimes in other cases.
>>
>> I know there were some issues/errors when the image of a page isn't
>> there already.  That should be fixed by this version of the patch.
>>
>> --8<---------------cut here---------------start------------->8---
>> === modified file 'lisp/doc-view.el'
>> --- lisp/doc-view.el    2013-02-28 04:02:36 +0000
>> +++ lisp/doc-view.el    2013-03-07 08:14:09 +0000
>> @@ -1250,7 +1250,7 @@
>>    (when doc-view-pending-cache-flush
>>      (clear-image-cache)
>>      (setq doc-view-pending-cache-flush nil))
>> -  (let ((ol (doc-view-current-overlay))
>> +  (let* ((ol (doc-view-current-overlay))
>>          (image (if (and file (file-readable-p file))
>>                    (if (not (and doc-view-scale-internally
>>                                   (fboundp 'imagemagick-types)))
>> @@ -1258,9 +1258,20 @@
>>                      (unless (member :width args)
>>                        (setq args `(,@args :width ,doc-view-image-width)))
>>                      (apply 'create-image file 'imagemagick nil args))))
>> -        (slice (doc-view-current-slice)))
>> +        (slice (doc-view-current-slice))
>> +        (img-width (and image (car (image-size image))))
>> +        (displayed-img-width (if (and image slice)
>> +                                 (* (/ (float (nth 2 slice))
>> +                                       (car (image-size image 'pixels)))
>> +                                    img-width)
>> +                               img-width))
>> +        (window-width (window-width (selected-window))))
>>      (setf (doc-view-current-image) image)
>>      (move-overlay ol (point-min) (point-max))
>> +    (when (and image (> window-width displayed-img-width))
>> +      (overlay-put ol 'before-string
>> +                  (propertize " " 'display
>> +                              `(space :align-to (+ center (-0.5 .
>> ,displayed-img-width))))))
>>      (overlay-put ol 'display
>>                   (cond
>>                    (image
>> --8<---------------cut here---------------end--------------->8---
>>
>> Bye,
>> Tassilo
>>
>
>

[-- Attachment #2: Type: text/html, Size: 4194 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-07 22:57                 ` E Sabof
@ 2013-03-08  7:57                   ` Tassilo Horn
       [not found]                     ` <CAEp6DybMJkagHjRaXPiA_ED_dntOk=5USr+P9DfqRPZ_JrrKww@mail.gmail.com>
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-08  7:57 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

>> I mean pressing + or - moves the page horizontally, instead of
>> changing the size. I think the way it opens the document is ok.

Strange, I can't reproduce that here.  Do you have a recipe?

> Couldn't tell the difference to be honest.

The difference between what?  The old and the new patch?

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: Fwd: bug#13887: 24.3; doc-view will render blurry images when image-magick is available
       [not found]                     ` <CAEp6DybMJkagHjRaXPiA_ED_dntOk=5USr+P9DfqRPZ_JrrKww@mail.gmail.com>
@ 2013-03-09  7:25                       ` E Sabof
  2013-03-09  7:26                         ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-09  7:25 UTC (permalink / raw)
  To: 13887

[-- Attachment #1: Type: text/plain, Size: 573 bytes --]

---------- Forwarded message ----------
From: E Sabof <esabof@gmail.com>
Date: Sat, Mar 9, 2013 at 7:21 AM
Subject: Re: bug#13887: 24.3; doc-view will render blurry images when
image-magick is available
To: Tassilo Horn <tsdh@gnu.org>


Strange, I can't reproduce that here.  Do you have a recipe?
>

Can't really give you a recipe - re-sizing just seems very fragile. A
possible source might be this: running M-: (overlays-at 1) usually returns
2 overlays. This is also true for the stable version.

The difference between what?  The old and the new patch?
>

Yes

Evgeni

[-- Attachment #2: Type: text/html, Size: 1520 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-09  7:25                       ` bug#13887: Fwd: " E Sabof
@ 2013-03-09  7:26                         ` E Sabof
  2013-03-11  9:11                           ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-09  7:26 UTC (permalink / raw)
  To: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 87 bytes --]

A relevant point might be that I usually start doc-view from
"dired-find-file"

Evgeni

[-- Attachment #2: Type: text/html, Size: 148 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-09  7:26                         ` E Sabof
@ 2013-03-11  9:11                           ` Tassilo Horn
  2013-03-11 16:57                             ` Eli Zaretskii
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-11  9:11 UTC (permalink / raw)
  To: E Sabof, Stefan Monnier; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> A relevant point might be that I usually start doc-view from
> "dired-find-file"

No, that seems unrelated.

>>> [Image seems to be moved only when zooming with my centering patch.]
>>
>> Strange, I can't reproduce that here.  Do you have a recipe?
>
> Can't really give you a recipe - re-sizing just seems very fragile. A
> possible source might be this: running M-: (overlays-at 1) usually
> returns 2 overlays. This is also true for the stable version.

Hm, indeed.  I can reproduce that with emacs -Q.  Sometimes I have 2
overlays, sometimes even three.  Right now, using emacs-bzr-version
"eliz@gnu.org-20130305181225-20nu9zkyby8jw21e",

  $ emacs -Q some.pdf

will show some.pdf, and (overlays-at 1) returns 2 overlays.  Also, when
switching pages, the mode-line indicator is updated but I still see the
old page.  It won't refresh at all.  Ditto for zooming or anything that
would change the display.

Aha, now I know how to reproduce that (also with the emacs with my
customizations and the centering patch).  Somehow,
`doc-view-new-window-function' is run way too often (I've commented in
the (message ...) in its first line to see).  When opening some
document, it's run twice.  When the document is shown, M-x <TAB> will
also run it again.  Ditto for M-: (i<TAB.  Ditto for C-x C-f.

That way, I've managed to have 9 overlays all from 1 to point-max in my
current doc-view buffer.  And now I get the same effects with zooming
(and my centering patch): it seems the image is just moved.  The problem
is in fact that the :align-to changes for centering the image are
visible to you, while the image update is not.  In that situation,
changing the page won't do anything visible for you, too, except for
updating the page number in the mode-line.

Stefan, could you please have a look at this?  You're more proficient
when it comes to the windows/overlays/image-mode stuff.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11  9:11                           ` Tassilo Horn
@ 2013-03-11 16:57                             ` Eli Zaretskii
  2013-03-11 18:20                               ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-11 16:57 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887, esabof

> From: Tassilo Horn <tsdh@gnu.org>
> Date: Mon, 11 Mar 2013 10:11:28 +0100
> Cc: 13887@debbugs.gnu.org
> 
> Aha, now I know how to reproduce that (also with the emacs with my
> customizations and the centering patch).  Somehow,
> `doc-view-new-window-function' is run way too often (I've commented in
> the (message ...) in its first line to see).  When opening some
> document, it's run twice.  When the document is shown, M-x <TAB> will
> also run it again.  Ditto for M-: (i<TAB.  Ditto for C-x C-f.

doc-view-new-window-function seems to be run from a
window-configuration-change-hook, right?  If so, why do you expect it
to be run only once, or not run when you type "M-x TAB"?  E.g., the
latter pops up the completion buffer and/or splits the window, which
constitutes a change in window configuration:

 -- Variable: window-configuration-change-hook
     A normal hook that is run every time you change the window
     configuration of an existing frame.  This includes splitting or
     deleting windows, changing the sizes of windows, or displaying a
     different buffer in a window.                    ^^^^^^^^^^^^^^^
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I think a function written to run off that hook should be defensive
and not assume anything about when it will or won't be called, or how
many times.  Just grep the C sources for
run_window_configuration_change_hook, and you will see why.





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 16:57                             ` Eli Zaretskii
@ 2013-03-11 18:20                               ` Tassilo Horn
  2013-03-11 18:45                                 ` Eli Zaretskii
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-11 18:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, esabof

Eli Zaretskii <eliz@gnu.org> writes:

>> Aha, now I know how to reproduce that (also with the emacs with my
>> customizations and the centering patch).  Somehow,
>> `doc-view-new-window-function' is run way too often (I've commented
>> in the (message ...) in its first line to see).  When opening some
>> document, it's run twice.  When the document is shown, M-x <TAB> will
>> also run it again.  Ditto for M-: (i<TAB.  Ditto for C-x C-f.
>
> doc-view-new-window-function seems to be run from a
> window-configuration-change-hook, right?

No, from `image-mode-new-window-functions'.  The functions in there are
run by `image-mode-winprops' if (and only if) there are no winprops set
for the image and the current window.  Basically, this should only ever
happen when there's a new window showing the buffer with the image.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 18:20                               ` Tassilo Horn
@ 2013-03-11 18:45                                 ` Eli Zaretskii
  2013-03-11 20:27                                   ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-11 18:45 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887, esabof

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: esabof@gmail.com,  monnier@iro.umontreal.ca,  13887@debbugs.gnu.org
> Date: Mon, 11 Mar 2013 19:20:47 +0100
> 
> > doc-view-new-window-function seems to be run from a
> > window-configuration-change-hook, right?
> 
> No, from `image-mode-new-window-functions'.  The functions in there are
> run by `image-mode-winprops' if (and only if) there are no winprops set
> for the image and the current window.

Maybe I'm missing something, but in image-mode.el:

  . image-mode-winprops is called by image-mode-reapply-winprops

  . image-mode-reapply-winprops is added by image-mode-setup-winprops
    to window-configuration-change-hook

Doesn't that mean what I said?

> Basically, this should only ever happen when there's a new window
> showing the buffer with the image.

How's that ensured?  Can you walk us through the relevant code?





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 18:45                                 ` Eli Zaretskii
@ 2013-03-11 20:27                                   ` Tassilo Horn
  2013-03-11 20:59                                     ` Eli Zaretskii
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-11 20:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, esabof

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Tassilo Horn <tsdh@gnu.org>
>> Cc: esabof@gmail.com,  monnier@iro.umontreal.ca,  13887@debbugs.gnu.org
>> Date: Mon, 11 Mar 2013 19:20:47 +0100
>> 
>> > doc-view-new-window-function seems to be run from a
>> > window-configuration-change-hook, right?
>> 
>> No, from `image-mode-new-window-functions'.  The functions in there
>> are run by `image-mode-winprops' if (and only if) there are no
>> winprops set for the image and the current window.
>
> Maybe I'm missing something, but in image-mode.el:
>
>   . image-mode-winprops is called by image-mode-reapply-winprops
>
>   . image-mode-reapply-winprops is added by image-mode-setup-winprops
>     to window-configuration-change-hook
>
> Doesn't that mean what I said?

Nearly, except that `image-mode-new-window-functions' are only run when
they don't have an entry in `image-mode-winprops-alist'.

>> Basically, this should only ever happen when there's a new window
>> showing the buffer with the image.
>
> How's that ensured?  Can you walk us through the relevant code?

That's line 72 in image-mode.el:

  (let ((winprops (assq window image-mode-winprops-alist)))
    ;; For new windows, set defaults from the latest.
    (unless winprops
      (setq winprops (cons window
                           (copy-alist (cdar image-mode-winprops-alist))))
      (run-hook-with-args 'image-mode-new-window-functions winprops))

However, whenever the doc-view window is split (e.g., when a completion
buffer pops up), the doc-view buffer is indeed shown in a new window.
That's why `doc-view-new-window-function' is run more often than I
expected originally.

That also explains why there are often multiple overlays in the doc-view
buffer.  There's one overlay per window that has shown the buffer at
least once.  This allows that you can have 2 windows displaying the same
doc-view buffer: one showing page X, and in the other you can switch to
other pages without changing the other window.

So the multiple overlays thingy is actually intended.  But somewhere the
logic goes wonky and we're acting on the wrong overlay.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 20:27                                   ` Tassilo Horn
@ 2013-03-11 20:59                                     ` Eli Zaretskii
  2013-03-11 22:08                                       ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-11 20:59 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887, esabof

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: esabof@gmail.com,  monnier@iro.umontreal.ca,  13887@debbugs.gnu.org
> Date: Mon, 11 Mar 2013 21:27:16 +0100
> 
> So the multiple overlays thingy is actually intended.  But somewhere the
> logic goes wonky and we're acting on the wrong overlay.

What is the "right" overlay?





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 20:59                                     ` Eli Zaretskii
@ 2013-03-11 22:08                                       ` E Sabof
  2013-03-11 23:41                                         ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-11 22:08 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 575 bytes --]

Apparently overlays have a "window" property, which when set, will display
the overlay only in the relevant window.

I've noticed however that sometimes it gets set to t.


On Mon, Mar 11, 2013 at 8:59 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> > From: Tassilo Horn <tsdh@gnu.org>
> > Cc: esabof@gmail.com,  monnier@iro.umontreal.ca,  13887@debbugs.gnu.org
> > Date: Mon, 11 Mar 2013 21:27:16 +0100
> >
> > So the multiple overlays thingy is actually intended.  But somewhere the
> > logic goes wonky and we're acting on the wrong overlay.
>
> What is the "right" overlay?
>

[-- Attachment #2: Type: text/html, Size: 1180 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 22:08                                       ` E Sabof
@ 2013-03-11 23:41                                         ` E Sabof
  2013-03-12  1:00                                           ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-11 23:41 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 867 bytes --]

The overlay with t value has precedence over other overlays. If the problem
occurs, I can run the following function, and it will get fixed in existing
windows. However if I create a new window, it will show only text. If I
press + in that window, a new overlay will be created. Perhaps the t
overlay was meant to be the default, and someone misunderstood it's effect.

(defun 13887-fix-helper1 ()
  (interactive)
  (let* ((ovs (overlays-at (point)))
         (ov-t (find-if (lambda (ov) (eq (overlay-get ov 'window) t))
                        ovs)))
    (when ov-t (delete-overlay ov-t))))

Here is one more helper function which might be useful.

(defun 13887-own-overlay-present-p ()
  (interactive)
  (let* ((ovs (overlays-at (point))))
    (find-if (lambda (ov) (eq (overlay-get ov 'window)
                              (selected-window)))
             ovs)))

[-- Attachment #2: Type: text/html, Size: 1551 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-11 23:41                                         ` E Sabof
@ 2013-03-12  1:00                                           ` E Sabof
  2013-03-12  8:09                                             ` Tassilo Horn
  2013-03-12 16:52                                             ` Eli Zaretskii
  0 siblings, 2 replies; 51+ messages in thread
From: E Sabof @ 2013-03-12  1:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 1157 bytes --]

Further evidence suggests that the "t taking precedence" version is wrong.
It's more probable the the precedence is determined by the order of
overlays in some C data-structure.


On Mon, Mar 11, 2013 at 11:41 PM, E Sabof <esabof@gmail.com> wrote:

> The overlay with t value has precedence over other overlays. If the
> problem occurs, I can run the following function, and it will get fixed in
> existing windows. However if I create a new window, it will show only text.
> If I press + in that window, a new overlay will be created. Perhaps the t
> overlay was meant to be the default, and someone misunderstood it's effect.
>
> (defun 13887-fix-helper1 ()
>   (interactive)
>   (let* ((ovs (overlays-at (point)))
>          (ov-t (find-if (lambda (ov) (eq (overlay-get ov 'window) t))
>                         ovs)))
>     (when ov-t (delete-overlay ov-t))))
>
> Here is one more helper function which might be useful.
>
> (defun 13887-own-overlay-present-p ()
>   (interactive)
>   (let* ((ovs (overlays-at (point))))
>     (find-if (lambda (ov) (eq (overlay-get ov 'window)
>                               (selected-window)))
>              ovs)))
>

[-- Attachment #2: Type: text/html, Size: 2094 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12  1:00                                           ` E Sabof
@ 2013-03-12  8:09                                             ` Tassilo Horn
  2013-03-12 16:50                                               ` Eli Zaretskii
  2013-03-12 16:52                                             ` Eli Zaretskii
  1 sibling, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-12  8:09 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

Eli Zaretskii writes:

> What is the "right" overlay?

There should be exactly one overlay in the doc-view buffer whose window
property is the currently selected window, and that window has this
overlay accociated in `image-mode-winprops-alist'.

E Sabof <esabof@gmail.com> writes:

> Further evidence suggests that the "t taking precedence" version is
> wrong.  It's more probable the the precedence is determined by the
> order of overlays in some C data-structure.

I think the buffer-local value of `image-mode-winprops-alist' should
always look like:

--8<---------------cut here---------------start------------->8---
((#<window 0x846c030 on IncPat.pdf>
	   (overlay . #<overlay from 1 to 756769 in IncPat.pdf>)
	   (image image :type imagemagick :file "/tmp/docview1000/IncPat.pdf-982c2eddc6c753dafecbffecb17d5993/page-12.png" :width 685)
	   (info .
		 #("Page 12 of 13.\n" 0 14
		   (face bold)))
	   (page . 12)
	   (slice))
 (t
  (page . 1)
  (overlay . #<overlay in no buffer>)))
--8<---------------cut here---------------end--------------->8---

That is, there's one entry for any window that shows this doc-view
buffer, plus one t-entry with a deleted overlay.  The order of entries
is by recency of window activations (or creations?), I think.  t is
always the last.

When `doc-view-new-window-function' is called for the very first time
for a new doc-view buffer (i.e., you opened a new document), (car
winprops) is t.  I that case, a new overlay is created, doc-view and
window properties are added (both t), it's associated in winprops (the
t-entry), and then it's deleted so that its not shown (because at this
point in time the image to be shown might not exist).  This entry acts
as default if there are no other entries.

Thereafter, it's immediately called again with a concrete window in (car
winprops).  Don't ask me from where.  I'm edebugging
`doc-view-new-window-function', but this call doesn't drop me in the
edebugger as the previous one did.  I just see the message

  New window #<window 0x7751d70 on foo.pdf> for buf foo.pdf

in the echo area.

With the second and any subsequent call of
`doc-view-new-window-function' for a given doc-view buffer, the overlay
of the top-entry in `image-mode-winprops-alist' is copied.  That way,
the new window shows the same page with the same zoom level/slice as the
most recent other window showing the document.

Yesterday, when things were messed up, I know that
`image-mode-winprops-alist' looked like that:

--8<---------------cut here---------------start------------->8---
((#<window 0x846c030 on IncPat.pdf>
	   ...)
 (t
  (page . 1)
  (overlay . #<overlay from 1 to 756769 in IncPat.pdf>)))
--8<---------------cut here---------------end--------------->8---

That is, the t-entry had an overlay that hasn't been deleted.  I don't
know how I could reach that state (I just quickly switched pages,
zoomed, sliced, split window), but that seems wrong and might be the
culprit because some other window in might already use that.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12  8:09                                             ` Tassilo Horn
@ 2013-03-12 16:50                                               ` Eli Zaretskii
  2013-03-12 18:00                                                 ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-12 16:50 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887, esabof

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: Eli Zaretskii <eliz@gnu.org>,  Stefan Monnier <monnier@iro.umontreal.ca>,  13887@debbugs.gnu.org
> Date: Tue, 12 Mar 2013 09:09:54 +0100
> 
> Yesterday, when things were messed up, I know that
> `image-mode-winprops-alist' looked like that:
> 
> --8<---------------cut here---------------start------------->8---
> ((#<window 0x846c030 on IncPat.pdf>
> 	   ...)
>  (t
>   (page . 1)
>   (overlay . #<overlay from 1 to 756769 in IncPat.pdf>)))
> --8<---------------cut here---------------end--------------->8---
> 
> That is, the t-entry had an overlay that hasn't been deleted.  I don't
> know how I could reach that state (I just quickly switched pages,
> zoomed, sliced, split window), but that seems wrong and might be the
> culprit because some other window in might already use that.

So is there still some issue with handling overlays or with display in
general?

You see, I chimed in because you seemed to indicate there's some
problems with how overlays are handled in this context.  But now it
sounds like the problem is some fragile logic in doc-view.el proper,
right?





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12  1:00                                           ` E Sabof
  2013-03-12  8:09                                             ` Tassilo Horn
@ 2013-03-12 16:52                                             ` Eli Zaretskii
  2013-03-12 17:46                                               ` E Sabof
  1 sibling, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-12 16:52 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, tsdh

> Date: Tue, 12 Mar 2013 01:00:11 +0000
> From: E Sabof <esabof@gmail.com>
> Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, 13887@debbugs.gnu.org
> 
> Further evidence suggests that the "t taking precedence" version is wrong.
> It's more probable the the precedence is determined by the order of
> overlays in some C data-structure.

What do you mean by "precedence"?  AFAIK, there's no precedence in
handling overlays, unless they have non-nil 'priority' property, in
which case all the overlays at a given position are sorted according
to priority before displaying them.





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12 16:52                                             ` Eli Zaretskii
@ 2013-03-12 17:46                                               ` E Sabof
  2013-03-12 21:11                                                 ` Eli Zaretskii
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-12 17:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 769 bytes --]

I mean which overlay will be visible, everything else being equal

On Tue, Mar 12, 2013 at 4:52 PM, Eli Zaretskii <eliz@gnu.org> wrote:

> > Date: Tue, 12 Mar 2013 01:00:11 +0000
> > From: E Sabof <esabof@gmail.com>
> > Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <
> monnier@iro.umontreal.ca>, 13887@debbugs.gnu.org
> >
> > Further evidence suggests that the "t taking precedence" version is
> wrong.
> > It's more probable the the precedence is determined by the order of
> > overlays in some C data-structure.
>
> What do you mean by "precedence"?  AFAIK, there's no precedence in
> handling overlays, unless they have non-nil 'priority' property, in
> which case all the overlays at a given position are sorted according
> to priority before displaying them.
>

[-- Attachment #2: Type: text/html, Size: 1409 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12 16:50                                               ` Eli Zaretskii
@ 2013-03-12 18:00                                                 ` Tassilo Horn
  0 siblings, 0 replies; 51+ messages in thread
From: Tassilo Horn @ 2013-03-12 18:00 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, esabof

Eli Zaretskii <eliz@gnu.org> writes:

>> Yesterday, when things were messed up, I know that
>> `image-mode-winprops-alist' looked like that:
>> 
>> --8<---------------cut here---------------start------------->8---
>> ((#<window 0x846c030 on IncPat.pdf>
>> 	   ...)
>>  (t
>>   (page . 1)
>>   (overlay . #<overlay from 1 to 756769 in IncPat.pdf>)))
>> --8<---------------cut here---------------end--------------->8---
>> 
>> That is, the t-entry had an overlay that hasn't been deleted.  I don't
>> know how I could reach that state (I just quickly switched pages,
>> zoomed, sliced, split window), but that seems wrong and might be the
>> culprit because some other window in might already use that.
>
> So is there still some issue with handling overlays or with display in
> general?

No, I don't think so.

> You see, I chimed in because you seemed to indicate there's some
> problems with how overlays are handled in this context.  But now it
> sounds like the problem is some fragile logic in doc-view.el proper,
> right?

Yes, doc-view or (less likely) image-mode.  That's why I've Cc-ed Stefan
who invented that logic.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12 17:46                                               ` E Sabof
@ 2013-03-12 21:11                                                 ` Eli Zaretskii
  2013-03-14  3:28                                                   ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Eli Zaretskii @ 2013-03-12 21:11 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, tsdh

> Date: Tue, 12 Mar 2013 17:46:41 +0000
> From: E Sabof <esabof@gmail.com>
> Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, 13887@debbugs.gnu.org
> 
> I mean which overlay will be visible, everything else being equal

They all will be visible.





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-12 21:11                                                 ` Eli Zaretskii
@ 2013-03-14  3:28                                                   ` E Sabof
  2013-03-14  3:56                                                     ` E Sabof
                                                                       ` (2 more replies)
  0 siblings, 3 replies; 51+ messages in thread
From: E Sabof @ 2013-03-14  3:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 1381 bytes --]

Here is what I found:

The first time (doc-view-insert-image) is called, the doc-view buffer isn't
selected, and (doc-view-current-overlay) returns the t overlay.

The "fake" overlay gets "resurrected" when (doc-view-insert-image) calls
(move-overlay) on it.

Adding

(defun doc-view-initiate-display ()
  ;; Switch to image display if possible.
  (if (doc-view-mode-p doc-view-doc-type)
      (progn
+        (unless (eq (window-buffer) (current-buffer))
+          (set-window-buffer (selected-window) (current-buffer)))

prevents the t "window" from being set.

The second problem was that after splitting, new windows wouldn't have
overlays. What looked suspicious was that (image-mode-winprops) always ran
with the initial window. Changing the definition of
image-get-display-property from

(defun image-get-display-property ()
  (get-char-property (point-min) 'display
                     ;; There might be different images for different
displays.
                     (if (eq (window-buffer) (current-buffer))
                         (selected-window))))

to

(defun image-get-display-property ()
  (or (get-char-property (point-min) 'display (selected-window))
      (get-char-property (point-min) 'display)))

has fixed it. I'm not sure it's the right (only?) place to fix, since by
the time it gets called, (eq (window-buffer) (current-buffer)) should be
true.

Evgeni

[-- Attachment #2: Type: text/html, Size: 1981 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14  3:28                                                   ` E Sabof
@ 2013-03-14  3:56                                                     ` E Sabof
  2013-03-14  7:24                                                     ` Tassilo Horn
  2013-03-14 13:26                                                     ` Stefan Monnier
  2 siblings, 0 replies; 51+ messages in thread
From: E Sabof @ 2013-03-14  3:56 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 106 bytes --]

However with these fixes, docview is no longer converts properly. It only
works if the images are cached.

[-- Attachment #2: Type: text/html, Size: 127 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14  3:28                                                   ` E Sabof
  2013-03-14  3:56                                                     ` E Sabof
@ 2013-03-14  7:24                                                     ` Tassilo Horn
  2013-03-14 15:23                                                       ` E Sabof
  2013-03-14 13:26                                                     ` Stefan Monnier
  2 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-14  7:24 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> The first time (doc-view-insert-image) is called, the doc-view buffer
> isn't selected, and (doc-view-current-overlay) returns the t overlay.
>
> The "fake" overlay gets "resurrected" when (doc-view-insert-image)
> calls (move-overlay) on it.

Thanks Evgeni, I think that brought me on track.  Could you please
test-drive this patch (which also contains the centering stuff) and
check if the issue is fixed by it?  It seems it is for me, but I only
did some very brief testing.

--8<---------------cut here---------------start------------->8---
=== modified file 'lisp/doc-view.el'
--- lisp/doc-view.el    2013-02-28 04:02:36 +0000
+++ lisp/doc-view.el    2013-03-14 07:21:18 +0000
@@ -1250,17 +1250,33 @@
   (when doc-view-pending-cache-flush
     (clear-image-cache)
     (setq doc-view-pending-cache-flush nil))
-  (let ((ol (doc-view-current-overlay))
-        (image (if (and file (file-readable-p file))
+  (let ((ol (doc-view-current-overlay)))
+    ;; ol might be a deleted (see `doc-view-new-window-function'), in
+    ;; which case we don't want to modify it.
+    (when (overlay-buffer ol)
+      (let* ((image (if (and file (file-readable-p file))
                   (if (not (and doc-view-scale-internally
                                  (fboundp 'imagemagick-types)))
                       (apply 'create-image file doc-view--image-type nil args)
                     (unless (member :width args)
                       (setq args `(,@args :width ,doc-view-image-width)))
                     (apply 'create-image file 'imagemagick nil args))))
-        (slice (doc-view-current-slice)))
+            (slice (doc-view-current-slice))
+            (img-width (and image (car (image-size image))))
+            (displayed-img-width (if (and image slice)
+                                     (* (/ (float (nth 2 slice))
+                                           (car (image-size image 'pixels)))
+                                        img-width)
+                                   img-width))
+            (window-width (window-width (selected-window))))
     (setf (doc-view-current-image) image)
     (move-overlay ol (point-min) (point-max))
+       ;; In case the window is wider than the image, center the image
+       ;; horizontally.
+       (overlay-put ol 'before-string
+                    (when (and image (> window-width displayed-img-width))
+                      (propertize " " 'display
+                                  `(space :align-to (+ center (-0.5 . ,displayed-img-width))))))
     (overlay-put ol 'display
                  (cond
                   (image
@@ -1287,7 +1303,7 @@
               (vscroll (image-mode-window-get 'vscroll win)))
           ;; Reset scroll settings, in case they were changed.
           (if hscroll (set-window-hscroll win hscroll))
-          (if vscroll (set-window-vscroll win vscroll)))))))
+             (if vscroll (set-window-vscroll win vscroll)))))))))
 
 (defun doc-view-sort (a b)
   "Return non-nil if A should be sorted before B.
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14  3:28                                                   ` E Sabof
  2013-03-14  3:56                                                     ` E Sabof
  2013-03-14  7:24                                                     ` Tassilo Horn
@ 2013-03-14 13:26                                                     ` Stefan Monnier
  2013-03-14 15:30                                                       ` Tassilo Horn
  2 siblings, 1 reply; 51+ messages in thread
From: Stefan Monnier @ 2013-03-14 13:26 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Tassilo Horn

> +        (unless (eq (window-buffer) (current-buffer))
> +          (set-window-buffer (selected-window) (current-buffer)))

This can't be the right fix: doc-view.el is just a major-mode that
controls how a particular buffer is displayed, and not which buffer to
display in which window.

[ I see Tassilo has a better patch already, so I'll let him take care of
  it, but I just wanted to point out "the obvious".  ]


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14  7:24                                                     ` Tassilo Horn
@ 2013-03-14 15:23                                                       ` E Sabof
  2013-03-14 16:48                                                         ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-14 15:23 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 3536 bytes --]

With this patch I don't get an overlay in the initial window, and sometimes
after splitting. Redefining image-get-display-property as in my previous
patch fixes the splitting problem.

Evgeni


On Thu, Mar 14, 2013 at 7:24 AM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > The first time (doc-view-insert-image) is called, the doc-view buffer
> > isn't selected, and (doc-view-current-overlay) returns the t overlay.
> >
> > The "fake" overlay gets "resurrected" when (doc-view-insert-image)
> > calls (move-overlay) on it.
>
> Thanks Evgeni, I think that brought me on track.  Could you please
> test-drive this patch (which also contains the centering stuff) and
> check if the issue is fixed by it?  It seems it is for me, but I only
> did some very brief testing.
>
> --8<---------------cut here---------------start------------->8---
> === modified file 'lisp/doc-view.el'
> --- lisp/doc-view.el    2013-02-28 04:02:36 +0000
> +++ lisp/doc-view.el    2013-03-14 07:21:18 +0000
> @@ -1250,17 +1250,33 @@
>    (when doc-view-pending-cache-flush
>      (clear-image-cache)
>      (setq doc-view-pending-cache-flush nil))
> -  (let ((ol (doc-view-current-overlay))
> -        (image (if (and file (file-readable-p file))
> +  (let ((ol (doc-view-current-overlay)))
> +    ;; ol might be a deleted (see `doc-view-new-window-function'), in
> +    ;; which case we don't want to modify it.
> +    (when (overlay-buffer ol)
> +      (let* ((image (if (and file (file-readable-p file))
>                    (if (not (and doc-view-scale-internally
>                                   (fboundp 'imagemagick-types)))
>                        (apply 'create-image file doc-view--image-type nil
> args)
>                      (unless (member :width args)
>                        (setq args `(,@args :width ,doc-view-image-width)))
>                      (apply 'create-image file 'imagemagick nil args))))
> -        (slice (doc-view-current-slice)))
> +            (slice (doc-view-current-slice))
> +            (img-width (and image (car (image-size image))))
> +            (displayed-img-width (if (and image slice)
> +                                     (* (/ (float (nth 2 slice))
> +                                           (car (image-size image
> 'pixels)))
> +                                        img-width)
> +                                   img-width))
> +            (window-width (window-width (selected-window))))
>      (setf (doc-view-current-image) image)
>      (move-overlay ol (point-min) (point-max))
> +       ;; In case the window is wider than the image, center the image
> +       ;; horizontally.
> +       (overlay-put ol 'before-string
> +                    (when (and image (> window-width displayed-img-width))
> +                      (propertize " " 'display
> +                                  `(space :align-to (+ center (-0.5 .
> ,displayed-img-width))))))
>      (overlay-put ol 'display
>                   (cond
>                    (image
> @@ -1287,7 +1303,7 @@
>                (vscroll (image-mode-window-get 'vscroll win)))
>            ;; Reset scroll settings, in case they were changed.
>            (if hscroll (set-window-hscroll win hscroll))
> -          (if vscroll (set-window-vscroll win vscroll)))))))
> +             (if vscroll (set-window-vscroll win vscroll)))))))))
>
>  (defun doc-view-sort (a b)
>    "Return non-nil if A should be sorted before B.
> --8<---------------cut here---------------end--------------->8---
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 4674 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 13:26                                                     ` Stefan Monnier
@ 2013-03-14 15:30                                                       ` Tassilo Horn
  2013-03-14 15:53                                                         ` E Sabof
  2013-03-14 16:19                                                         ` Stefan Monnier
  0 siblings, 2 replies; 51+ messages in thread
From: Tassilo Horn @ 2013-03-14 15:30 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13887, E Sabof

Stefan Monnier <monnier@iro.umontreal.ca> writes:

>> +        (unless (eq (window-buffer) (current-buffer))
>> +          (set-window-buffer (selected-window) (current-buffer)))
>
> This can't be the right fix: doc-view.el is just a major-mode that
> controls how a particular buffer is displayed, and not which buffer to
> display in which window.
>
> [ I see Tassilo has a better patch already, so I'll let him take care of
>   it, but I just wanted to point out "the obvious".  ]

I've committed my patch now.  Evgeni, please report back if it really
solves the issue for you, so that I can close this issue.

Stefan, do you think the horizontal centering of images in case the
window is wider than the image should be customizable?  Currently it's
not which is fine with me and is what other viewers also do.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 15:30                                                       ` Tassilo Horn
@ 2013-03-14 15:53                                                         ` E Sabof
  2013-03-14 16:19                                                         ` Stefan Monnier
  1 sibling, 0 replies; 51+ messages in thread
From: E Sabof @ 2013-03-14 15:53 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 1304 bytes --]

Tested the trunk version of doc-view with "emacs -Q". I am still not
getting not getting an inital overlay. However I do get overlays after I
zoom and split. (I still get occasional pages with no overlays after
spltting if I use my default configuration)

Also If you zoom/split/delete windows for a while, doc-view stops centering
overlays in new windows.

Evgeni


On Thu, Mar 14, 2013 at 3:30 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>
> >> +        (unless (eq (window-buffer) (current-buffer))
> >> +          (set-window-buffer (selected-window) (current-buffer)))
> >
> > This can't be the right fix: doc-view.el is just a major-mode that
> > controls how a particular buffer is displayed, and not which buffer to
> > display in which window.
> >
> > [ I see Tassilo has a better patch already, so I'll let him take care of
> >   it, but I just wanted to point out "the obvious".  ]
>
> I've committed my patch now.  Evgeni, please report back if it really
> solves the issue for you, so that I can close this issue.
>
> Stefan, do you think the horizontal centering of images in case the
> window is wider than the image should be customizable?  Currently it's
> not which is fine with me and is what other viewers also do.
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 1900 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 15:30                                                       ` Tassilo Horn
  2013-03-14 15:53                                                         ` E Sabof
@ 2013-03-14 16:19                                                         ` Stefan Monnier
  1 sibling, 0 replies; 51+ messages in thread
From: Stefan Monnier @ 2013-03-14 16:19 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887, E Sabof

> Stefan, do you think the horizontal centering of images in case the
> window is wider than the image should be customizable?

I don't see a need for it, no.  If we need more flexibility in this
area, I think the better option is to let the arrow keys move the
picture (i.e. reduce/increase the before-string space), but it's
a separate feature.


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 15:23                                                       ` E Sabof
@ 2013-03-14 16:48                                                         ` Tassilo Horn
  2013-03-14 21:42                                                           ` Tassilo Horn
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-14 16:48 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> With this patch I don't get an overlay in the initial window, and
> sometimes after splitting.

Gosh, indeed!  I'll look into that later.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 16:48                                                         ` Tassilo Horn
@ 2013-03-14 21:42                                                           ` Tassilo Horn
  2013-03-15  1:11                                                             ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Tassilo Horn @ 2013-03-14 21:42 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

Tassilo Horn <tsdh@gnu.org> writes:

Hi again,

>> With this patch I don't get an overlay in the initial window, and
>> sometimes after splitting.
>
> Gosh, indeed!  I'll look into that later.

Ok, now I really think I've fixed it (revno 112045), although I had to
add some obscure code in `doc-view-new-window-function' which adds
functions doing a display refresh to a timer.  If I execute the code of
these functions directly in `doc-view-new-window-function', I get Lisp
nesting exceeds `max-lisp-eval-depth' errors.

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-14 21:42                                                           ` Tassilo Horn
@ 2013-03-15  1:11                                                             ` E Sabof
  2013-03-15 12:52                                                               ` Stefan Monnier
  2013-03-15 13:55                                                               ` Tassilo Horn
  0 siblings, 2 replies; 51+ messages in thread
From: E Sabof @ 2013-03-15  1:11 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 1506 bytes --]

Now it works in "emacs -Q", but not with my configuration. To be honest I
don't think it's worth coding something final on top of current
image-mode's API - it looks under-developed at several points.

a) Is all the "window t" stuff necessary? Does anyone really care what is
"shown" in a buffer unless it's displayed in a window?
b) If yes, should "window t" be passed to a public hook?
c) Does (image-get-display-property) have any business asking what buffer
is currently selected in the window?
d) Why data is sometimes retrieved from the the buffer (as in (
image-get-display-property)), and sometimes from image-mode-winprops-alist
(as in (image-mode-winprops))? Is the complexity justified, or is one of
the methods "legacy"?

I use image viewers, so I could try re-factoring it, adding H/V centering,
improving zooming options, and extending the API.

Evgeni



On Thu, Mar 14, 2013 at 9:42 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> Tassilo Horn <tsdh@gnu.org> writes:
>
> Hi again,
>
> >> With this patch I don't get an overlay in the initial window, and
> >> sometimes after splitting.
> >
> > Gosh, indeed!  I'll look into that later.
>
> Ok, now I really think I've fixed it (revno 112045), although I had to
> add some obscure code in `doc-view-new-window-function' which adds
> functions doing a display refresh to a timer.  If I execute the code of
> these functions directly in `doc-view-new-window-function', I get Lisp
> nesting exceeds `max-lisp-eval-depth' errors.
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 2744 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15  1:11                                                             ` E Sabof
@ 2013-03-15 12:52                                                               ` Stefan Monnier
  2013-03-15 13:34                                                                 ` E Sabof
  2013-03-15 13:55                                                               ` Tassilo Horn
  1 sibling, 1 reply; 51+ messages in thread
From: Stefan Monnier @ 2013-03-15 12:52 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Tassilo Horn

> a) Is all the "window t" stuff necessary?
> Does anyone really care what is "shown" in a buffer unless it's
> displayed in a window?

It's not a question of caring: it's a mechanism.

If you "move to next page" before displaying the buffer, then yes, you
probably care.  In most cases you don't, but then this "window t stuff"
shouldn't hurt you one bit either.

> c) Does (image-get-display-property) have any business asking what buffer
> is currently selected in the window?

Good question.  It shouldn't hurt, but maybe it's a mistake.

> d) Why data is sometimes retrieved from the the buffer (as in (
> image-get-display-property)), and sometimes from image-mode-winprops-alist
> (as in (image-mode-winprops))? Is the complexity justified, or is one of
> the methods "legacy"?

Can't remember, sorry.  That's a good question, tho.

I do remember that part of the motivation behind the design was that:
- several windows need to be able to display different pages (or
  different parts of the same page) of the same doc-view buffer.
- "current page and page position" info needs to be preserved while the
  buffer is not shown, so that you can temporarily switch to some other
  buffer and then switch back to the doc-view buffer without finding
  yourself back at page 1.


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 12:52                                                               ` Stefan Monnier
@ 2013-03-15 13:34                                                                 ` E Sabof
  2013-03-15 17:51                                                                   ` Stefan Monnier
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-15 13:34 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 1011 bytes --]

On Fri, Mar 15, 2013 at 12:52 PM, Stefan Monnier
<monnier@iro.umontreal.ca>wrote:

> > a) Is all the "window t" stuff necessary?
> > Does anyone really care what is "shown" in a buffer unless it's
> > displayed in a window?
>
> It's not a question of caring: it's a mechanism.
>
> If you "move to next page" before displaying the buffer, then yes, you
> probably care.  In most cases you don't, but then this "window t stuff"
> shouldn't hurt you one bit either.


I should have said "associated" instead of "displayed".

What I'm trying to say is that a certain window is always selected. If a
buffer is not being displayed, I associate data with the selected window,
and later show it in the same window, the right thing should happen. If I
display it in a different window. Either a) The window already has data, so
it will be used. b) The window doesn't have data, so it will take data I
have just set.

I think the above behavior is acceptable. I don't know if it's any
different from the current.

Evgeni

[-- Attachment #2: Type: text/html, Size: 1609 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15  1:11                                                             ` E Sabof
  2013-03-15 12:52                                                               ` Stefan Monnier
@ 2013-03-15 13:55                                                               ` Tassilo Horn
  2013-03-15 14:08                                                                 ` E Sabof
  2013-03-20 15:58                                                                 ` E Sabof
  1 sibling, 2 replies; 51+ messages in thread
From: Tassilo Horn @ 2013-03-15 13:55 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887

E Sabof <esabof@gmail.com> writes:

> Now it works in "emacs -Q", but not with my configuration.

Do you mind to share your configuration?

Bye,
Tassilo





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 13:55                                                               ` Tassilo Horn
@ 2013-03-15 14:08                                                                 ` E Sabof
  2013-03-20 15:58                                                                 ` E Sabof
  1 sibling, 0 replies; 51+ messages in thread
From: E Sabof @ 2013-03-15 14:08 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 432 bytes --]

I've checked again, sometimes it works, sometimes it doesn't.

My configuration is rather large. It would be a lot easier for me to try
and find the differences than for someone else.

Evgeni



On Fri, Mar 15, 2013 at 1:55 PM, Tassilo Horn <tsdh@gnu.org> wrote:

> E Sabof <esabof@gmail.com> writes:
>
> > Now it works in "emacs -Q", but not with my configuration.
>
> Do you mind to share your configuration?
>
> Bye,
> Tassilo
>

[-- Attachment #2: Type: text/html, Size: 925 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 13:34                                                                 ` E Sabof
@ 2013-03-15 17:51                                                                   ` Stefan Monnier
  2013-03-15 23:26                                                                     ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Stefan Monnier @ 2013-03-15 17:51 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Tassilo Horn

> What I'm trying to say is that a certain window is always selected. If a
> buffer is not being displayed, I associate data with the selected window,
> and later show it in the same window, the right thing should happen. If I
> display it in a different window. Either a) The window already has data, so
> it will be used. b) The window doesn't have data, so it will take data I
> have just set.
> I think the above behavior is acceptable.

It's probably fine as well, yes.

> I don't know if it's any different from the current.

It probably is in various corner cases.  Not sure if it matters.


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 17:51                                                                   ` Stefan Monnier
@ 2013-03-15 23:26                                                                     ` E Sabof
  2013-03-16 13:41                                                                       ` Stefan Monnier
  0 siblings, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-15 23:26 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 820 bytes --]

Should I try to patch it? Without "window t" image-mode would be more
predictable.

Evgeni


On Fri, Mar 15, 2013 at 5:51 PM, Stefan Monnier <monnier@iro.umontreal.ca>wrote:

> > What I'm trying to say is that a certain window is always selected. If a
> > buffer is not being displayed, I associate data with the selected window,
> > and later show it in the same window, the right thing should happen. If I
> > display it in a different window. Either a) The window already has data,
> so
> > it will be used. b) The window doesn't have data, so it will take data I
> > have just set.
> > I think the above behavior is acceptable.
>
> It's probably fine as well, yes.
>
> > I don't know if it's any different from the current.
>
> It probably is in various corner cases.  Not sure if it matters.
>
>
>         Stefan
>

[-- Attachment #2: Type: text/html, Size: 1359 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 23:26                                                                     ` E Sabof
@ 2013-03-16 13:41                                                                       ` Stefan Monnier
  2013-03-16 23:30                                                                         ` E Sabof
  0 siblings, 1 reply; 51+ messages in thread
From: Stefan Monnier @ 2013-03-16 13:41 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Tassilo Horn

> Should I try to patch it? Without "window t" image-mode would be more
> predictable.

I don't know.


        Stefan





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-16 13:41                                                                       ` Stefan Monnier
@ 2013-03-16 23:30                                                                         ` E Sabof
  0 siblings, 0 replies; 51+ messages in thread
From: E Sabof @ 2013-03-16 23:30 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 13887, Tassilo Horn

[-- Attachment #1: Type: text/plain, Size: 989 bytes --]

There is a case where I initialize a mode in one window, show it in another,
move down several pages, and then switch to the buffer in the first window
(and
the first page will be shown instead of the current).

If my understanding is correct, initialization is the only place in which
the
behavior of "window t" is evident and beneficial.

I'm not sure what I dislike the least. "window t" and the need to track
window-buffer, a dedicated initialization mechanism, or switching to "fully
initialized mode" the first time a real window is processed.

I suppose I could try finding what goes wrong with the current patch in the
meanwhile. I think that my previous experiment suggests a confusion
regarding
the value of (window-buffer) is a likely cause of this bug.

Evgeni


On Sat, Mar 16, 2013 at 1:41 PM, Stefan Monnier <monnier@iro.umontreal.ca>wrote:

> > Should I try to patch it? Without "window t" image-mode would be more
> > predictable.
>
> I don't know.
>
>
>         Stefan
>

[-- Attachment #2: Type: text/html, Size: 1634 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-15 13:55                                                               ` Tassilo Horn
  2013-03-15 14:08                                                                 ` E Sabof
@ 2013-03-20 15:58                                                                 ` E Sabof
  2019-09-26 17:16                                                                   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 51+ messages in thread
From: E Sabof @ 2013-03-20 15:58 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 13887

[-- Attachment #1: Type: text/plain, Size: 138 bytes --]

It sometimes happens when the images are retrieved from cache. I'll try
to simplify my config a bit, and send you a link in a PM.

Evgeni

[-- Attachment #2: Type: text/html, Size: 194 bytes --]

^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2013-03-20 15:58                                                                 ` E Sabof
@ 2019-09-26 17:16                                                                   ` Lars Ingebrigtsen
  2019-10-14  6:04                                                                     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 51+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-26 17:16 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Stefan Monnier, Tassilo Horn

E Sabof <esabof@gmail.com> writes:

> It sometimes happens when the images are retrieved from cache. I'll try to
> simplify my config a bit, and send you a link in a PM.

This the last entry in this very long bug report.  I'm not sure whether
everything was resolved or not, though: doc-view-scale-internally was
added, which should help with some of these problems.

PDFs render well for me.

Are you still seeing these problems in Emacs 27?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 51+ messages in thread

* bug#13887: 24.3; doc-view will render blurry images when image-magick is available
  2019-09-26 17:16                                                                   ` Lars Ingebrigtsen
@ 2019-10-14  6:04                                                                     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 51+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-14  6:04 UTC (permalink / raw)
  To: E Sabof; +Cc: 13887, Stefan Monnier, Tassilo Horn

Lars Ingebrigtsen <larsi@gnus.org> writes:

> E Sabof <esabof@gmail.com> writes:
>
>> It sometimes happens when the images are retrieved from cache. I'll try to
>> simplify my config a bit, and send you a link in a PM.
>
> This the last entry in this very long bug report.  I'm not sure whether
> everything was resolved or not, though: doc-view-scale-internally was
> added, which should help with some of these problems.
>
> PDFs render well for me.
>
> Are you still seeing these problems in Emacs 27?

More information was requested some weeks back, but no response was
given, so I'm closing this bug report.  If you're still seeing this
problem, please reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 51+ messages in thread

end of thread, other threads:[~2019-10-14  6:04 UTC | newest]

Thread overview: 51+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-06  3:40 bug#13887: 24.3; doc-view will render blurry images when image-magick is available E Sabof
2013-03-06  8:05 ` Tassilo Horn
2013-03-06 12:13   ` E Sabof
2013-03-06 13:01     ` Tassilo Horn
2013-03-06 14:19       ` E Sabof
2013-03-06 19:43         ` Tassilo Horn
2013-03-07 15:17           ` E Sabof
2013-03-07 15:55             ` Tassilo Horn
2013-03-07 16:15               ` E Sabof
2013-03-07 22:57                 ` E Sabof
2013-03-08  7:57                   ` Tassilo Horn
     [not found]                     ` <CAEp6DybMJkagHjRaXPiA_ED_dntOk=5USr+P9DfqRPZ_JrrKww@mail.gmail.com>
2013-03-09  7:25                       ` bug#13887: Fwd: " E Sabof
2013-03-09  7:26                         ` E Sabof
2013-03-11  9:11                           ` Tassilo Horn
2013-03-11 16:57                             ` Eli Zaretskii
2013-03-11 18:20                               ` Tassilo Horn
2013-03-11 18:45                                 ` Eli Zaretskii
2013-03-11 20:27                                   ` Tassilo Horn
2013-03-11 20:59                                     ` Eli Zaretskii
2013-03-11 22:08                                       ` E Sabof
2013-03-11 23:41                                         ` E Sabof
2013-03-12  1:00                                           ` E Sabof
2013-03-12  8:09                                             ` Tassilo Horn
2013-03-12 16:50                                               ` Eli Zaretskii
2013-03-12 18:00                                                 ` Tassilo Horn
2013-03-12 16:52                                             ` Eli Zaretskii
2013-03-12 17:46                                               ` E Sabof
2013-03-12 21:11                                                 ` Eli Zaretskii
2013-03-14  3:28                                                   ` E Sabof
2013-03-14  3:56                                                     ` E Sabof
2013-03-14  7:24                                                     ` Tassilo Horn
2013-03-14 15:23                                                       ` E Sabof
2013-03-14 16:48                                                         ` Tassilo Horn
2013-03-14 21:42                                                           ` Tassilo Horn
2013-03-15  1:11                                                             ` E Sabof
2013-03-15 12:52                                                               ` Stefan Monnier
2013-03-15 13:34                                                                 ` E Sabof
2013-03-15 17:51                                                                   ` Stefan Monnier
2013-03-15 23:26                                                                     ` E Sabof
2013-03-16 13:41                                                                       ` Stefan Monnier
2013-03-16 23:30                                                                         ` E Sabof
2013-03-15 13:55                                                               ` Tassilo Horn
2013-03-15 14:08                                                                 ` E Sabof
2013-03-20 15:58                                                                 ` E Sabof
2019-09-26 17:16                                                                   ` Lars Ingebrigtsen
2019-10-14  6:04                                                                     ` Lars Ingebrigtsen
2013-03-14 13:26                                                     ` Stefan Monnier
2013-03-14 15:30                                                       ` Tassilo Horn
2013-03-14 15:53                                                         ` E Sabof
2013-03-14 16:19                                                         ` Stefan Monnier
2013-03-06 18:16 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).