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:
parent
a8f627f15c
commit
0fe59effe2
4 changed files with 14 additions and 0 deletions
|
|
@ -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)?;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue