Merge branch 'serial' into 'master'

imservice: Increment serials on receiving done, not sending commit

See merge request Librem5/squeekboard!426
This commit is contained in:
Dorota Czaplejewicz
2021-01-24 05:14:57 +00:00
2 changed files with 4 additions and 3 deletions

View File

@ -294,8 +294,8 @@
The serial number reflects the last state of the zwp_input_method_v2 The serial number reflects the last state of the zwp_input_method_v2
object known to the client. The value of the serial argument must be object known to the client. The value of the serial argument must be
equal to the number of commit requests already issued on that object. equal to the number of done events already issued on that object.
When the compositor receives a done event with a serial different than When the compositor receives a commit request with a serial different than
the number of past commit requests, it must proceed as normal, except the number of past commit requests, it must proceed as normal, except
it should not change the current state of the zwp_input_method_v2 it should not change the current state of the zwp_input_method_v2
object. object.

View File

@ -149,6 +149,8 @@ pub mod c {
..IMProtocolState::default() ..IMProtocolState::default()
}; };
imservice.serial += Wrapping(1u32);
if active_changed { if active_changed {
(imservice.active_callback)(imservice.current.active); (imservice.active_callback)(imservice.current.active);
if imservice.current.active { if imservice.current.active {
@ -404,7 +406,6 @@ impl IMService {
unsafe { unsafe {
c::eek_input_method_commit(self.im, self.serial.0) c::eek_input_method_commit(self.im, self.serial.0)
} }
self.serial += Wrapping(1u32);
Ok(()) Ok(())
}, },
false => Err(SubmitError::NotActive), false => Err(SubmitError::NotActive),