1
0
Fork 0
forked from wry/wry

surface: remove interior mutability from pending state

This commit is contained in:
Julian Orth 2024-03-20 18:45:18 +01:00
parent 84e6b74893
commit 86d37b5aa4
4 changed files with 53 additions and 52 deletions

View file

@ -39,13 +39,13 @@ impl WpTearingControlV1 {
ASYNC => true,
_ => return Err(WpTearingControlV1Error::UnknownPresentationHint(req.hint)),
};
self.surface.pending.tearing.set(Some(tearing));
self.surface.pending.borrow_mut().tearing = Some(tearing);
Ok(())
}
fn destroy(&self, parser: MsgParser<'_, '_>) -> Result<(), WpTearingControlV1Error> {
let _req: Destroy = self.surface.client.parse(self, parser)?;
self.surface.pending.tearing.set(Some(false));
self.surface.pending.borrow_mut().tearing = Some(false);
self.surface.tearing_control.take();
self.surface.client.remove_obj(self)?;
Ok(())

View file

@ -38,8 +38,9 @@ impl WpViewport {
fn destroy(&self, msg: MsgParser<'_, '_>) -> Result<(), WpViewportError> {
let _req: Destroy = self.client.parse(self, msg)?;
self.surface.pending.src_rect.set(Some(None));
self.surface.pending.dst_size.set(Some(None));
let pending = &mut *self.surface.pending.borrow_mut();
pending.src_rect = Some(None);
pending.dst_size = Some(None);
self.surface.viewporter.take();
self.client.remove_obj(self)?;
Ok(())
@ -56,7 +57,7 @@ impl WpViewport {
}
Some([req.x, req.y, req.width, req.height])
};
self.surface.pending.src_rect.set(Some(rect));
self.surface.pending.borrow_mut().src_rect = Some(rect);
Ok(())
}
@ -69,7 +70,7 @@ impl WpViewport {
} else {
Some((req.width, req.height))
};
self.surface.pending.dst_size.set(Some(size));
self.surface.pending.borrow_mut().dst_size = Some(size);
Ok(())
}
}

View file

@ -32,7 +32,7 @@ impl XwaylandSurfaceV1 {
return Err(XwaylandSurfaceV1Error::NonMonotonicSerial);
}
self.client.last_xwayland_serial.set(serial);
self.x.surface.pending.xwayland_serial.set(Some(serial));
self.x.surface.pending.borrow_mut().xwayland_serial = Some(serial);
Ok(())
}