1
0
Fork 0
forked from wry/wry

tree: never focus wl-subsurface surfaces

This commit is contained in:
Julian Orth 2022-05-05 14:04:15 +02:00
parent 5afde58086
commit 4584dee160
15 changed files with 150 additions and 35 deletions

View file

@ -3,7 +3,7 @@ use {
ifs::wl_seat::wl_pointer::WlPointer,
it::{
test_error::TestResult, test_object::TestObject, test_transport::TestTransport,
testrun::ParseFull,
test_utils::test_expected_event::TEEH, testrun::ParseFull,
},
utils::{buffd::MsgParser, clonecell::CloneCell},
wire::{wl_pointer::*, WlPointerId},
@ -16,6 +16,9 @@ pub struct TestPointer {
pub tran: Rc<TestTransport>,
pub server: CloneCell<Option<Rc<WlPointer>>>,
pub destroyed: Cell<bool>,
pub leave: TEEH<Leave>,
pub enter: TEEH<Enter>,
pub motion: TEEH<Motion>,
}
impl TestPointer {
@ -27,17 +30,20 @@ impl TestPointer {
}
fn handle_enter(&self, parser: MsgParser<'_, '_>) -> TestResult {
let _ev = Enter::parse_full(parser)?;
let ev = Enter::parse_full(parser)?;
self.enter.push(ev);
Ok(())
}
fn handle_leave(&self, parser: MsgParser<'_, '_>) -> TestResult {
let _ev = Leave::parse_full(parser)?;
let ev = Leave::parse_full(parser)?;
self.leave.push(ev);
Ok(())
}
fn handle_motion(&self, parser: MsgParser<'_, '_>) -> TestResult {
let _ev = Motion::parse_full(parser)?;
let ev = Motion::parse_full(parser)?;
self.motion.push(ev);
Ok(())
}

View file

@ -63,6 +63,9 @@ impl TestSeat {
tran: self.tran.clone(),
server: Default::default(),
destroyed: Default::default(),
leave: Rc::new(Default::default()),
enter: Rc::new(Default::default()),
motion: Rc::new(Default::default()),
});
self.tran.add_obj(pointer.clone())?;
self.tran.sync().await;

View file

@ -1,8 +1,13 @@
use {
crate::{
format::ARGB8888,
it::{
test_error::TestError, test_ifs::test_shm_pool::TestShmPool, test_mem::TestMem,
test_object::TestObject, test_transport::TestTransport, testrun::ParseFull,
test_error::{TestError, TestResult},
test_ifs::{test_shm_buffer::TestShmBuffer, test_shm_pool::TestShmPool},
test_mem::TestMem,
test_object::TestObject,
test_transport::TestTransport,
testrun::ParseFull,
},
utils::{buffd::MsgParser, clonecell::CloneCell, copyhashmap::CopyHashMap},
wire::{wl_shm::*, WlShmId},
@ -43,6 +48,11 @@ impl TestShm {
Ok(pool)
}
pub fn create_buffer(&self, width: i32, height: i32) -> TestResult<Rc<TestShmBuffer>> {
let pool = self.create_pool((width * height * 4) as _)?;
pool.create_buffer(0, width, height, width * 4, ARGB8888)
}
fn handle_format(&self, parser: MsgParser<'_, '_>) -> Result<(), TestError> {
let ev = Format::parse_full(parser)?;
self.formats.set(ev.format, ());