position fix

This commit is contained in:
2025-07-05 10:06:48 -05:00
parent 2f328f6762
commit 4dfbee5984
2 changed files with 35 additions and 16 deletions
+22 -8
View File
@@ -110,16 +110,30 @@ impl Dimension {
impl Position {
pub fn use_position(&self, size: u16, parent: u16, m: i32, r: &mut u16) {
match self {
Self::Center => *r = (parent - size) / 2,
Self::Const(n) => *r = *n,
Self::End => *r = parent - size,
}
let base = match self {
Self::Center => {
if parent < size {
return;
}
(parent - size) / 2
}
Self::Const(n) => *n,
Self::End => {
if parent < size {
return;
}
parent - size
}
};
if m > 0 {
*r += m as u16;
let adjusted = if m >= 0 {
base.checked_add(m as u16)
} else {
*r -= -m as u16;
base.checked_sub((-m) as u16)
};
if let Some(val) = adjusted {
*r = val;
}
}
}