fix: Toplevel disappearing after unmap
This commit is contained in:
parent
d708e18278
commit
ea429a778e
1 changed files with 10 additions and 3 deletions
|
|
@ -335,9 +335,16 @@ where
|
||||||
let toplevel_handle = self
|
let toplevel_handle = self
|
||||||
.foreign_toplevel_list
|
.foreign_toplevel_list
|
||||||
.new_toplevel::<D>(toplevel.title(), toplevel.app_id());
|
.new_toplevel::<D>(toplevel.title(), toplevel.app_id());
|
||||||
toplevel
|
|
||||||
.user_data()
|
if let Some(toplevel_state) = toplevel.user_data().get::<ToplevelState>() {
|
||||||
.insert_if_missing(move || ToplevelStateInner::from_foreign(toplevel_handle));
|
let mut toplevel_state = toplevel_state.lock().unwrap();
|
||||||
|
toplevel_state.foreign_handle = Some(toplevel_handle);
|
||||||
|
} else {
|
||||||
|
toplevel
|
||||||
|
.user_data()
|
||||||
|
.insert_if_missing(move || ToplevelStateInner::from_foreign(toplevel_handle));
|
||||||
|
}
|
||||||
|
|
||||||
for instance in &self.instances {
|
for instance in &self.instances {
|
||||||
send_toplevel_to_client::<D, W>(&self.dh, workspace_state, instance, toplevel);
|
send_toplevel_to_client::<D, W>(&self.dh, workspace_state, instance, toplevel);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue