input: Fix events for subsurfaces of lock surface
This commit is contained in:
parent
ad2cba324e
commit
ea1800f157
1 changed files with 18 additions and 8 deletions
|
|
@ -2092,14 +2092,24 @@ impl State {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Stage::SessionLock(lock_surface) => {
|
Stage::SessionLock(lock_surface) => {
|
||||||
return ControlFlow::Break(Ok(lock_surface.map(|surface| {
|
return ControlFlow::Break(Ok(lock_surface.and_then(|surface| {
|
||||||
(
|
let location = output_geo.loc;
|
||||||
PointerFocusTarget::WlSurface {
|
if let Some((surface, surface_loc)) = under_from_surface_tree(
|
||||||
surface: surface.wl_surface().clone(),
|
surface.wl_surface(),
|
||||||
toplevel: None,
|
global_pos.as_logical(),
|
||||||
},
|
location.as_logical(),
|
||||||
output_geo.loc.to_f64(),
|
WindowSurfaceType::ALL,
|
||||||
)
|
) {
|
||||||
|
Some((
|
||||||
|
PointerFocusTarget::WlSurface {
|
||||||
|
surface,
|
||||||
|
toplevel: None,
|
||||||
|
},
|
||||||
|
surface_loc.as_global().to_f64(),
|
||||||
|
))
|
||||||
|
} else {
|
||||||
|
None
|
||||||
|
}
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
Stage::LayerPopup {
|
Stage::LayerPopup {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue