Encode rem values derived from pixels using rems_from_px
(#9367)
This PR adds a new `rems_from_px` helper function that can be used to compute rem values based on a pixel value. This is something we do fairly commonly, where we want to express a size that is a given pixel size at the base rem size (e.g., "14px when the rem size is 16px"). `rems_from_px` helps make the intent more explicit, as well as prevent the base rem size from being duplicated everywhere. Note: Ideally we would want `rems_from_px` to be `const`, but that depends on https://github.com/rust-lang/rust/issues/57241. Release Notes: - N/A
This commit is contained in:
parent
a78576a6db
commit
404adbce5b
13 changed files with 54 additions and 35 deletions
|
@ -1,13 +1,13 @@
|
|||
use std::{cell::RefCell, rc::Rc};
|
||||
|
||||
use gpui::{
|
||||
div, overlay, point, prelude::FluentBuilder, px, rems, AnchorCorner, AnyElement, Bounds,
|
||||
div, overlay, point, prelude::FluentBuilder, px, AnchorCorner, AnyElement, Bounds,
|
||||
DismissEvent, DispatchPhase, Element, ElementContext, ElementId, HitboxId, InteractiveElement,
|
||||
IntoElement, LayoutId, ManagedView, MouseDownEvent, ParentElement, Pixels, Point, View,
|
||||
VisualContext, WindowContext,
|
||||
};
|
||||
|
||||
use crate::{Clickable, Selectable};
|
||||
use crate::prelude::*;
|
||||
|
||||
pub trait PopoverTrigger: IntoElement + Clickable + Selectable + 'static {}
|
||||
|
||||
|
@ -102,7 +102,7 @@ impl<M: ManagedView> PopoverMenu<M> {
|
|||
fn resolved_offset(&self, cx: &WindowContext) -> Point<Pixels> {
|
||||
self.offset.unwrap_or_else(|| {
|
||||
// Default offset = 4px padding + 1px border
|
||||
let offset = rems(5. / 16.) * cx.rem_size();
|
||||
let offset = rems_from_px(5.) * cx.rem_size();
|
||||
match self.anchor {
|
||||
AnchorCorner::TopRight | AnchorCorner::BottomRight => point(offset, px(0.)),
|
||||
AnchorCorner::TopLeft | AnchorCorner::BottomLeft => point(-offset, px(0.)),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue