surface: process offset request without a buffer change
This commit is contained in:
parent
adf6d2ae2b
commit
9cddeb964d
9 changed files with 98 additions and 11 deletions
55
src/it/tests/t0020_surface_offset.rs
Normal file
55
src/it/tests/t0020_surface_offset.rs
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
use {
|
||||
crate::{
|
||||
it::{
|
||||
test_error::TestError,
|
||||
test_utils::{
|
||||
test_container_node_ext::TestContainerExt, test_ouput_node_ext::TestOutputNodeExt,
|
||||
test_toplevel_node_ext::TestToplevelNodeExt,
|
||||
test_workspace_node_ext::TestWorkspaceNodeExt,
|
||||
},
|
||||
testrun::TestRun,
|
||||
},
|
||||
theme::Color,
|
||||
},
|
||||
std::rc::Rc,
|
||||
};
|
||||
|
||||
testcase!();
|
||||
|
||||
async fn test(run: Rc<TestRun>) -> Result<(), TestError> {
|
||||
let ds = run.create_default_setup().await?;
|
||||
|
||||
let client = run.create_client().await?;
|
||||
let seat = client.get_default_seat().await?;
|
||||
let enter = seat.pointer.enter.expect()?;
|
||||
let win1 = client.create_window().await?;
|
||||
win1.map2().await?;
|
||||
|
||||
let buffer = client.spbm.create_buffer(Color::from_rgb(255, 0, 0))?;
|
||||
let surface = client.comp.create_surface().await?;
|
||||
let vp = client.viewporter.get_viewport(&surface)?;
|
||||
vp.set_destination(100, 100)?;
|
||||
surface.attach(buffer.id)?;
|
||||
surface.commit()?;
|
||||
|
||||
let (x, y) = ds
|
||||
.output
|
||||
.workspace()?
|
||||
.container()?
|
||||
.first_toplevel()?
|
||||
.center();
|
||||
ds.move_to(x, y);
|
||||
|
||||
client.sync().await;
|
||||
let enter = enter.next()?;
|
||||
seat.pointer.set_cursor(enter.serial, &surface, 0, 0)?;
|
||||
|
||||
client.compare_screenshot("1").await?;
|
||||
|
||||
surface.offset(-100, -100)?;
|
||||
surface.commit()?;
|
||||
|
||||
client.compare_screenshot("2").await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue