fix(wayland/xdg/popup): configure the popup then xdg surface

This commit is contained in:
Nova
2025-09-09 00:37:18 -07:00
parent 707452462d
commit bd1b54cf03

View File

@@ -3,6 +3,7 @@ use crate::nodes::items::panel::{ChildInfo, SurfaceId};
use crate::wayland::util::ClientExt; use crate::wayland::util::ClientExt;
use crate::wayland::{core::surface::SurfaceRole, display::Display, xdg::toplevel::Toplevel}; use crate::wayland::{core::surface::SurfaceRole, display::Display, xdg::toplevel::Toplevel};
use std::sync::Arc; use std::sync::Arc;
use waynest::server::protocol::stable::xdg_shell::xdg_popup::XdgPopup;
pub use waynest::server::protocol::stable::xdg_shell::xdg_surface::*; pub use waynest::server::protocol::stable::xdg_shell::xdg_surface::*;
use waynest::{ use waynest::{
server::{Client, Dispatcher, Result}, server::{Client, Dispatcher, Result},
@@ -158,6 +159,7 @@ impl XdgSurface for Surface {
Popup::new(popup_id, self.version, parent.clone(), surface, &positioner), Popup::new(popup_id, self.version, parent.clone(), surface, &positioner),
); );
popup.configure(client, popup_id, 0, 0, 0, 0).await?;
let serial = client.next_event_serial(); let serial = client.next_event_serial();
self.configure(client, sender_id, serial).await?; self.configure(client, sender_id, serial).await?;