mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-06 05:52:32 -08:00
Get explicit width/height + scale computations right
* src/image.c (compute_image_size): :scale should also be taken into account when :width and :height are explicitly names.
This commit is contained in:
parent
0883e988ac
commit
ad1951dbfb
1 changed files with 8 additions and 5 deletions
13
src/image.c
13
src/image.c
|
|
@ -8075,18 +8075,21 @@ compute_image_size (size_t width, size_t height,
|
|||
int desired_width, desired_height;
|
||||
double scale = 1;
|
||||
|
||||
value = image_spec_value (spec, QCscale, NULL);
|
||||
if (NUMBERP (value))
|
||||
scale = extract_float (value);
|
||||
|
||||
/* If width and/or height is set in the display spec assume we want
|
||||
to scale to those values. If either h or w is unspecified, the
|
||||
unspecified should be calculated from the specified to preserve
|
||||
aspect ratio. */
|
||||
value = image_spec_value (spec, QCwidth, NULL);
|
||||
desired_width = NATNUMP (value) ? min (XFASTINT (value), INT_MAX) : -1;
|
||||
desired_width = NATNUMP (value) ?
|
||||
min (XFASTINT (value) * scale, INT_MAX) : -1;
|
||||
value = image_spec_value (spec, QCheight, NULL);
|
||||
desired_height = NATNUMP (value) ? min (XFASTINT (value), INT_MAX) : -1;
|
||||
desired_height = NATNUMP (value) ?
|
||||
min (XFASTINT (value) * scale, INT_MAX) : -1;
|
||||
|
||||
value = image_spec_value (spec, QCscale, NULL);
|
||||
if (NUMBERP (value))
|
||||
scale = extract_float (value);
|
||||
width = width * scale;
|
||||
height = height * scale;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue