[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: create-image and find-image consistency
From: |
David Ponce |
Subject: |
Re: create-image and find-image consistency |
Date: |
Thu, 30 Apr 2020 11:24:30 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 30/04/2020 07:08, Lars Ingebrigtsen wrote:
I think it conceptually makes sense to have find-image use create-image,
but looking at the code, and where find-image is used, it looks like the
use case it for creating toolbars and the like, where you want to pick
out one of the (built-in) image formats that Emacs supports...
Looking at your patch, you remove the (image-type-available-p type), and
instead rely on create-image not bugging out instead? That feels like a
less obvious way to do the test (and more breakable; there may be other
reasons create-image fails).
And I'm not 100% sure that we want to auto-scale toolbars and the like.
I'm pretty sure we do, but perhaps somebody else has an opinion here?
Anyway, I think you should file this as a bug report so that the patch
doesn't get lost, because I think you're basically correct that the
find-image behaviour should be changed.
Hi Lars,
I created bug report #40978 as suggested.
My idea was to better separate the role of find-image from
create-image:
- create-image to actually make a new image based on given specs, and
maybe some common options and device capabilities (for example, auto
scaling based on screen resolution).
- find-image to lookup for an image in the file system or in raw data,
but delegating to create-image the actual creation of the image.
Currently find-image & create-image can return a different image from
the same spec, which is not consistent. My patch proposes to fix such
potential inconsistencies.
When you don't need auto-scaling for example, you can pass :scale 1.0
to find-image, like you would have done with create-image :-)
IMHO, auto-scaling is particularly useful with graphics elements like
tool bars, tab bars, and widgets ;-)
Thanks for taking into account this proposal!