better handle pending corners
This commit is contained in:
parent
a63d57261f
commit
e0c7d353aa
1 changed files with 18 additions and 1 deletions
|
|
@ -1099,6 +1099,12 @@ impl SctkState {
|
||||||
id: wl_surface.clone(),
|
id: wl_surface.clone(),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
if let Some(corners) = self.pending_corner_radius.remove(&id) {
|
||||||
|
self.handle_action(Action::RoundedCorners(
|
||||||
|
id,
|
||||||
|
Some(corners),
|
||||||
|
))?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
platform_specific::wayland::layer_surface::Action::Size {
|
platform_specific::wayland::layer_surface::Action::Size {
|
||||||
|
|
@ -1318,6 +1324,12 @@ impl SctkState {
|
||||||
SctkEvent::PopupEvent {
|
SctkEvent::PopupEvent {
|
||||||
variant: crate::platform_specific::wayland::sctk_event::PopupEventVariant::Created(queue_handle.clone(), surface, id, common, state.connection.display()),
|
variant: crate::platform_specific::wayland::sctk_event::PopupEventVariant::Created(queue_handle.clone(), surface, id, common, state.connection.display()),
|
||||||
toplevel_id, parent_id, id: wl_surface });
|
toplevel_id, parent_id, id: wl_surface });
|
||||||
|
if let Some(corners) = state.pending_corner_radius.remove(&id) {
|
||||||
|
state.handle_action(Action::RoundedCorners (
|
||||||
|
id,
|
||||||
|
Some(corners),
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
log::error!("Failed to create popup. {err:?}");
|
log::error!("Failed to create popup. {err:?}");
|
||||||
|
|
@ -1327,7 +1339,6 @@ impl SctkState {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
// log::error!("Invalid popup Id {:?}", popup.id);
|
|
||||||
} else {
|
} else {
|
||||||
self.pending_popup = None;
|
self.pending_popup = None;
|
||||||
match self.get_popup(settings) {
|
match self.get_popup(settings) {
|
||||||
|
|
@ -1337,6 +1348,12 @@ impl SctkState {
|
||||||
SctkEvent::PopupEvent {
|
SctkEvent::PopupEvent {
|
||||||
variant: crate::platform_specific::wayland::sctk_event::PopupEventVariant::Created(self.queue_handle.clone(), surface, id, common, self.connection.display()),
|
variant: crate::platform_specific::wayland::sctk_event::PopupEventVariant::Created(self.queue_handle.clone(), surface, id, common, self.connection.display()),
|
||||||
toplevel_id, parent_id, id: wl_surface });
|
toplevel_id, parent_id, id: wl_surface });
|
||||||
|
if let Some(corners) = self.pending_corner_radius.remove(&id) {
|
||||||
|
self.handle_action(Action::RoundedCorners (
|
||||||
|
id,
|
||||||
|
Some(corners),
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
log::error!("Failed to create popup. {err:?}");
|
log::error!("Failed to create popup. {err:?}");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue