fix setting the parent of a ToplevelSurface

This commit is contained in:
Christian Meissl 2022-01-15 20:23:08 +01:00
parent 050c648bff
commit 75162e93c7
2 changed files with 4 additions and 5 deletions

View File

@ -1169,15 +1169,14 @@ impl ToplevelSurface {
/// The parent must be another toplevel equivalent surface.
///
/// If the parent is `None`, the parent-child relationship is removed.
pub fn set_parent(&self, parent: Option<wl_surface::WlSurface>) -> bool {
pub fn set_parent(&self, parent: Option<&wl_surface::WlSurface>) -> bool {
if let Some(parent) = parent {
if !is_toplevel_equivalent(&parent) {
if !is_toplevel_equivalent(parent) {
return false;
}
}
// Unset the parent
xdg_handlers::set_parent(&self.shell_surface, None);
xdg_handlers::set_parent(&self.shell_surface, parent.cloned());
true
}

View File

@ -447,7 +447,7 @@ fn imported_implementation(
.map(|export| export.surface.clone())
.unwrap();
toplevel_surface.set_parent(Some(imported_parent));
toplevel_surface.set_parent(Some(&imported_parent));
}
_ => unreachable!(),