tree: never focus wl-subsurface surfaces
This commit is contained in:
parent
5afde58086
commit
4584dee160
15 changed files with 150 additions and 35 deletions
|
|
@ -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(())
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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, ());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue