Skip to content

Commit 245d49b

Browse files
{"message":"Resource not accessible by integration","documentation_url":"https://docs.github.com/rest/users/users#get-the-authenticated-user","status":"403"}oz-agent
authored andcommitted
Fix code review branch selector overlay
Anchor the diff selector menu to the saved trigger position so the overlay remains correctly positioned and interactive after pane relayouts, including maximized code review view. Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent fd0a9d1 commit 245d49b

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

app/src/code_review/diff_selector.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use warp_core::ui::theme::Fill;
55
use warpui::{
66
elements::{
77
ChildAnchor, ChildView, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
8-
Element, Flex, MouseStateHandle, OffsetPositioning, ParentAnchor, ParentElement,
9-
ParentOffsetBounds, Radius, Stack, Text,
8+
Element, Flex, MouseStateHandle, OffsetPositioning, ParentElement, PositionedElementAnchor,
9+
PositionedElementOffsetBounds, Radius, SavePosition, Stack, Text,
1010
},
1111
fonts::{Properties, Weight},
1212
id,
@@ -58,6 +58,7 @@ pub struct DiffSelector {
5858
menu: ViewHandle<CodeReviewDiffMenu>,
5959
menu_open: bool,
6060
trigger_mouse_state: MouseStateHandle,
61+
trigger_position_id: String,
6162
/// Cached label for the trigger button; mirrors the selected `DiffTarget`.
6263
trigger_label: String,
6364
}
@@ -97,6 +98,7 @@ impl DiffSelector {
9798
});
9899

99100
Self {
101+
trigger_position_id: format!("code_review_diff_selector_trigger_{}", menu.id()),
100102
menu,
101103
menu_open: false,
102104
trigger_mouse_state: MouseStateHandle::default(),
@@ -245,16 +247,18 @@ impl View for DiffSelector {
245247
ctx.dispatch_typed_action(DiffSelectorAction::Toggle);
246248
})
247249
.finish();
250+
let trigger = SavePosition::new(trigger, &self.trigger_position_id).finish();
248251

249252
let mut stack = Stack::new().with_child(trigger);
250253

251254
if self.menu_open {
252255
stack.add_positioned_overlay_child(
253256
ChildView::new(&self.menu).finish(),
254-
OffsetPositioning::offset_from_parent(
257+
OffsetPositioning::offset_from_save_position_element(
258+
self.trigger_position_id.as_str(),
255259
vec2f(0., MENU_OFFSET_Y),
256-
ParentOffsetBounds::WindowByPosition,
257-
ParentAnchor::BottomLeft,
260+
PositionedElementOffsetBounds::WindowByPosition,
261+
PositionedElementAnchor::BottomLeft,
258262
ChildAnchor::TopLeft,
259263
),
260264
);

0 commit comments

Comments
 (0)