Skip to content

Add Left/Right position toggle to vertical tabs panel settings popup#9827

Open
Felipe2194 wants to merge 3 commits intowarpdotdev:masterfrom
Felipe2194:feat/tabs-panel-position-toggle
Open

Add Left/Right position toggle to vertical tabs panel settings popup#9827
Felipe2194 wants to merge 3 commits intowarpdotdev:masterfrom
Felipe2194:feat/tabs-panel-position-toggle

Conversation

@Felipe2194
Copy link
Copy Markdown

@Felipe2194 Felipe2194 commented May 1, 2026

Summary

  • Adds a "Position" section (Left / Right segmented control) to the
    vertical tabs panel "View options" popup
  • Clicking "Right" moves the tabs panel to the right side of the
    terminal; clicking "Left" restores it to the default left position
  • Reuses the existing HeaderToolbarChipSelection infrastructure — no
    new settings storage needed

Changes

  • tab_settings.rs — new VerticalTabsPanelSide { Left, Right } enum
  • action.rs — new SetVerticalTabsPanelSide(VerticalTabsPanelSide)
    action
  • action_tests.rs — test for should_save_app_state_on_action
  • view.rs — action handler that moves TabsPanel between left/right
    items
  • vertical_tabs.rs — mouse states, helper render function, and
    "Position" UI section

Demo

Video-description.mp4
right-position-tabs panel Position-example

Closes #9825

@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 1, 2026

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @Felipe2194 on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment @cla-bot check to trigger another check.

@github-actions github-actions Bot added the external-contributor Indicates that a PR has been opened by someone outside the Warp team. label May 1, 2026
@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 1, 2026

@Felipe2194

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@Felipe2194
Copy link
Copy Markdown
Author

@cla-bot check

@cla-bot cla-bot Bot added the cla-signed label May 1, 2026
@cla-bot
Copy link
Copy Markdown

cla-bot Bot commented May 1, 2026

The cla-bot has been summoned, and re-checked this pull request!

oz-for-oss[bot]
oz-for-oss Bot previously requested changes May 1, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds a Left/Right position segmented control to the vertical tabs settings popup and handles the new action by moving TabsPanel between the header toolbar selection's left and right item lists.

Concerns

  • The side action is not idempotent for custom toolbar layouts: selecting the side that is already active still removes and reinserts TabsPanel at index 0, which can unexpectedly change a user's custom toolbar order.
  • This is a user-visible UI change, but the provided PR description does not include screenshots or a video demonstrating the feature end to end. For faster review, please upload visual evidence before approval.
  • Security pass: no security-sensitive behavior or data exposure concerns were identified in the changed code.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread app/src/workspace/view.rs
.clone();
let mut left_items = config.left_items();
let mut right_items = config.right_items();
left_items.retain(|i| i != &HeaderToolbarItemKind::TabsPanel);
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ [IMPORTANT] This action is not idempotent: clicking the already-selected side removes TabsPanel and reinserts it at index 0, clobbering any custom toolbar order. Return early when the panel is already on side, or skip dispatch from the selected segment.

)))
.finish();

popup_col.add_child(make_divider(theme));
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ [IMPORTANT] For faster review, please upload screenshots or a video of the feature working end to end.

@Felipe2194
Copy link
Copy Markdown
Author

Felipe2194 commented May 1, 2026

@cla-bot check

@Felipe2194
Copy link
Copy Markdown
Author

/oz-review

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 1, 2026

@Felipe2194

I'm re-reviewing this pull request in response to a review request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

oz-for-oss[bot]
oz-for-oss Bot previously requested changes May 1, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

Adds a Position control to the vertical-tabs View options popup and routes it through header_toolbar_chip_selection to move the TabsPanel between left and right panel slots.

Concerns

  • The new Right option does not update side-aware overlay positioning for the View options popup; after moving the panel right, the popup is still anchored as if the button is on the left and can render outward/off-screen.
  • No screenshots or video were included for this UI-impacting change. For faster review, please upload screenshots or a video of the feature working end to end.
  • Security pass: no security concerns identified in the changed code.

Verdict

Found: 0 critical, 2 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread app/src/workspace/view.rs
);
ctx.notify();
}
SetVerticalTabsPanelSide(side) => {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ [IMPORTANT] When the panel is moved right, Workspace::render still anchors the View options popup with BottomLeft/TopLeft, so it opens outward/off-screen from the right panel; make that popup anchor side-aware before exposing the Right option.

@Felipe2194
Copy link
Copy Markdown
Author

/oz-review

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 1, 2026

@Felipe2194

I'm re-reviewing this pull request in response to a review request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

oz-for-oss[bot]
oz-for-oss Bot previously requested changes May 1, 2026
Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds a Left/Right position selector to the vertical tabs settings popup and wires it to the existing header toolbar chip selection setting so the vertical tabs panel can move sides.

Concerns

  • This is a user-visible UI/layout change, but the provided PR description and workflow context do not include screenshots, GIFs, or video showing the feature working end to end. For faster review, please upload screenshots or a video of the feature working end to end.
  • Security pass: no security concerns found in the changed code.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@Felipe2194
Copy link
Copy Markdown
Author

Added demo screenshot as requested, ready for review

@Felipe2194
Copy link
Copy Markdown
Author

/oz-review

@oz-for-oss
Copy link
Copy Markdown
Contributor

oz-for-oss Bot commented May 3, 2026

@Felipe2194

I'm re-reviewing this pull request in response to a review request.

You can view the conversation on Warp.

I reviewed this pull request and requested human review from: @zachbai.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@oz-for-oss oz-for-oss Bot dismissed stale reviews from themself May 3, 2026 23:21

Oz no longer requests changes for this pull request after the latest automated review.

Copy link
Copy Markdown
Contributor

@oz-for-oss oz-for-oss Bot left a comment

Choose a reason for hiding this comment

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

Overview

This PR adds a Left/Right position control to the vertical tabs settings popup and implements the side change by moving TabsPanel between the existing header toolbar left/right item lists. The security pass did not identify security-relevant changes.

Concerns

  • The new Position action updates settings without emitting the same vertical-tabs display-option telemetry used by the adjacent settings actions.

Verdict

Found: 0 critical, 0 important, 1 suggestions

Approve with nits

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Comment thread app/src/workspace/view.rs
right: right_items,
}
};
TabSettings::handle(ctx).update(ctx, |settings, ctx| {
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

💡 [SUGGESTION] This is the only vertical-tabs display option action that updates settings without sending VerticalTabsTelemetryEvent::DisplayOptionChanged, so the new Position control will be invisible in feature analytics. Add telemetry for the side change before notifying.

@oz-for-oss oz-for-oss Bot requested a review from zachbai May 3, 2026 23:22
@zachbai
Copy link
Copy Markdown
Contributor

zachbai commented May 4, 2026

@Felipe2194 thanks for the change.

For changes like this - please open a GH issue to build alignment on the solution prior to opening a PR. Helps us get a sense for how much traction a given feature request has.

For this change in particular, you're already able to move the tabs panel to the right via 'Re-arrange toolbar items' when you right click the top bar, and I'm not sure moving tabs to the right is a common enough config that it needs to be made available in that vertical tab popup, which is pretty crowded as is.

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

Labels

cla-signed external-contributor Indicates that a PR has been opened by someone outside the Warp team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add position toggle (Left/Right) for the vertical tabs panel

2 participants