fix(menu): disable slide_x for repositioned nested popups

This commit is contained in:
Ashley Wulber 2025-06-18 15:27:04 -04:00 committed by Ashley Wulber
parent 90ed634b06
commit bf9fc4c29f

View file

@ -1030,18 +1030,20 @@ impl<Message: std::clone::Clone + 'static> Widget<Message, crate::Theme, crate::
); );
let popup_size = menu_node.size(); let popup_size = menu_node.size();
let positioner = SctkPositioner { let mut positioner = SctkPositioner {
size: Some(( size: Some((
popup_size.width.ceil() as u32 + 2, popup_size.width.ceil() as u32 + 2,
popup_size.height.ceil() as u32 + 2, popup_size.height.ceil() as u32 + 2,
)), )),
anchor_rect, anchor_rect,
anchor: anchor:
cctk::wayland_protocols::xdg::shell::client::xdg_positioner::Anchor::TopRight, cctk::wayland_protocols::xdg::shell::client::xdg_positioner::Anchor::TopRight,
gravity, gravity,
reactive: true, reactive: true,
..Default::default() ..Default::default()
}; };
// disable slide_x if it is set in the default
positioner.constraint_adjustment &= !(1 << 0);
let parent = self.window_id; let parent = self.window_id;
shell.publish((self.on_surface_action.as_ref().unwrap())( shell.publish((self.on_surface_action.as_ref().unwrap())(
crate::surface::action::simple_popup( crate::surface::action::simple_popup(