Skip to content

Comments

feat: respect window constraints#280

Open
acsandmann wants to merge 2 commits intomainfrom
feat/respect-window-constraints
Open

feat: respect window constraints#280
acsandmann wants to merge 2 commits intomainfrom
feat/respect-window-constraints

Conversation

@acsandmann
Copy link
Owner

No description provided.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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));

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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 👍 / 👎.

@acsandmann
Copy link
Owner Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant