Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 50d7320c35
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .filter_map(|wid| fixed_sizes.get(wid).map(|s| s.width)) | ||
| .fold(0.0, f64::max); | ||
| if fixed_w > 0.0 { | ||
| width = width.min(fixed_w.max(1.0)); |
There was a problem hiding this comment.
Persist constrained column widths for scrolling math
When a non-resizable window is present, this branch shrinks the rendered column width (width = width.min(...)), but scroll_by_delta and snap_to_nearest_column still recompute widths from ratio-only values via column_widths_and_starts, so navigation math no longer matches the actual layout. In columns narrowed by fixed-size windows, wheel/gesture scrolling can jump too far and hit overscroll/workspace-switch thresholds prematurely because the step/starts used for movement are wider than the frames actually drawn.
Useful? React with 👍 / 👎.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: dcb5648edc
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .iter() | ||
| .map(|&c| self.min_axis_len(map, window, c, horizontal, gaps, fixed_sizes)) | ||
| .sum(); | ||
| sum + (children.len().saturating_sub(1)) as f64 * inner_gap |
There was a problem hiding this comment.
Preserve unconstrained split ratios in traditional layout
layout_axis now always reserves each child’s min_axis_len, but min_axis_len can be non-zero even when there are no fixed-size windows because it unconditionally adds descendant inner gaps. In unconstrained trees this introduces artificial base lengths and changes parent split proportions (especially with non-zero gaps and nested splits), so regular resizable-window layouts no longer match the previous ratio behavior. This minimum should only be applied when a subtree actually contains fixed constraints.
Useful? React with 👍 / 👎.
| let flex = a.flex || b.flex; | ||
| match orientation { | ||
| Orientation::Horizontal => SubtreeConstraints { | ||
| min_width: a.min_width + b.min_width + gaps.inner.horizontal.max(0.0), |
There was a problem hiding this comment.
Avoid gap minimums for fully flexible BSP subtrees
subtree_constraints always adds inner-gap width/height for split nodes, even when both descendants are fully flexible. Those non-zero minima are then treated as hard bases in calculate_layout_recursive, which shifts unconstrained BSP proportions toward deeper branches whenever gaps are enabled. That changes normal (no fixed-size) layouts unexpectedly; gap-derived minima should be skipped unless fixed constraints actually require them.
Useful? React with 👍 / 👎.
No description provided.