use { crate::{ it::{test_error::TestResult, testrun::TestRun}, rect::Rect, }, std::rc::Rc, }; testcase!(); async fn test(run: Rc) -> TestResult { let ds = run.create_default_setup().await?; let client1 = run.create_client().await?; let win1 = client1.create_window().await?; win1.map2().await?; run.cfg.set_floating(ds.seat.id(), true)?; client1.sync().await; let (w1, h1) = (win1.tl.core.width.get(), win1.tl.core.height.get()); let float = win1.tl.float_parent()?; let pos = float.position.get(); float .position .set(Rect::new_sized(pos.x1(), pos.x2(), pos.width() / 2, pos.height() / 2).unwrap()); float.schedule_layout(); client1.sync().await; let (w2, h2) = (win1.tl.core.width.get(), win1.tl.core.height.get()); tassert!((w1, h1) != (w2, h2)); run.cfg.set_floating(ds.seat.id(), false)?; client1.sync().await; let (w3, h3) = (win1.tl.core.width.get(), win1.tl.core.height.get()); tassert!((w3, h3) != (w2, h2)); run.cfg.set_floating(ds.seat.id(), true)?; client1.sync().await; let (w4, h4) = (win1.tl.core.width.get(), win1.tl.core.height.get()); tassert!((w4, h4) == (w2, h2)); Ok(()) }