1
0
Fork 0
forked from wry/wry

seat: ignore duplicate set_selection request

This works around [1] and [2].

[1]: https://gitlab.gnome.org/GNOME/gtk/-/issues/5097
[2]: https://github.com/mahkoh/jay/issues/47
This commit is contained in:
Julian Orth 2022-08-13 12:57:42 +02:00
parent a8f627f15c
commit 0fe59effe2
4 changed files with 14 additions and 0 deletions

View file

@ -673,6 +673,11 @@ impl WlSeatGlobal {
field: &CloneCell<Option<Rc<T::Source>>>,
src: Option<Rc<T::Source>>,
) -> Result<(), WlSeatError> {
if let (Some(new), Some(old)) = (&src, &field.get()) {
if T::source_eq(old, new) {
return Ok(());
}
}
if let Some(new) = &src {
ipc::attach_seat::<T>(new, self, ipc::Role::Selection)?;
}