gpui: Fix `img` aspect ratio overriding existing value (#62367)
# Objective The `gpui::img` element always overrides the `aspect_ratio` field, so if you have an image element that applies its own `.aspect_ratio()` it just gets wiped out. ## Solution Only apply the aspect ratio default if one is not already set. ## Testing It's a very minor change but I did add a small test to ensure it actually gets overridden. ## Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content adheres to Zed's UI standards ([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) and [icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md) guidelines) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable ## Showcase This came from an issue where vertical images inside an element (square in this case, as you'd see in an image gallery) do not behave correctly with `object_fit` values of `ObjectFit::Contain` or `ObjectFit::ScaleDown`. This was simply because despite the image element having a fixed square size (`img().size(px(200.))`), the aspect ratio would be forced to the ratio of the image itself, so vertical images weren't being properly fitted into their containers. Minimal repro for that issue: https://github.com/zaknesler/gpui-object-fit So with this change, you can set `.aspect_square()` and the object fit will behave as you'd expect: <img width="1237" height="986" alt="image" src="https://github.com/user-attachments/assets/5b1045a8-bd71-4b77-8bbd-c3b12112bcb0" /> --- Release Notes: - gpui: Fix image element's aspect ratio overriding existing value
Z
Zak Nesler committed
59b2ebf10351b5c0b5cd4403f01ed0460eeec06d
Parent: 08827f9
Committed by GitHub <noreply@github.com>
on 8/9/2026, 11:31:23 AM