input: Fix window subsurface focus
This commit is contained in:
parent
46e679ec92
commit
c10d9b9648
1 changed files with 3 additions and 3 deletions
|
|
@ -532,7 +532,7 @@ impl State {
|
||||||
// (in case of a window the toplevel) surface for the focus.
|
// (in case of a window the toplevel) surface for the focus.
|
||||||
// see: https://gitlab.freedesktop.org/wayland/wayland/-/issues/294
|
// see: https://gitlab.freedesktop.org/wayland/wayland/-/issues/294
|
||||||
if !seat.get_pointer().unwrap().is_grabbed()
|
if !seat.get_pointer().unwrap().is_grabbed()
|
||||||
&& !seat.get_keyboard().map(|k| k.is_grabbed()).unwrap_or(true)
|
&& !seat.get_keyboard().map(|k| k.is_grabbed()).unwrap_or(false)
|
||||||
{
|
{
|
||||||
let output = active_output(seat, &self.common);
|
let output = active_output(seat, &self.common);
|
||||||
let pos = seat.get_pointer().unwrap().current_location();
|
let pos = seat.get_pointer().unwrap().current_location();
|
||||||
|
|
@ -586,13 +586,13 @@ impl State {
|
||||||
)
|
)
|
||||||
.and_then(|(_, _)| layer.get_surface().cloned());
|
.and_then(|(_, _)| layer.get_surface().cloned());
|
||||||
}
|
}
|
||||||
} else if let Some((_, surface, _)) =
|
} else if let Some((window, _, _)) =
|
||||||
workspace.space.surface_under(
|
workspace.space.surface_under(
|
||||||
relative_pos,
|
relative_pos,
|
||||||
WindowSurfaceType::ALL,
|
WindowSurfaceType::ALL,
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
under = Some(surface);
|
under = window.toplevel().get_surface().cloned();
|
||||||
} else if let Some(layer) =
|
} else if let Some(layer) =
|
||||||
layers.layer_under(WlrLayer::Bottom, pos).or_else(
|
layers.layer_under(WlrLayer::Bottom, pos).or_else(
|
||||||
|| layers.layer_under(WlrLayer::Background, pos),
|
|| layers.layer_under(WlrLayer::Background, pos),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue