tree: make surface visibility tracking more robust
This commit is contained in:
parent
be0935c8dd
commit
ba98103233
26 changed files with 313 additions and 144 deletions
|
|
@ -196,7 +196,9 @@ impl Backend for MetalBackend {
|
|||
return;
|
||||
}
|
||||
}
|
||||
if !idle {
|
||||
if idle {
|
||||
self.state.set_backend_idle(true);
|
||||
} else {
|
||||
for device in devices.values() {
|
||||
for connector in device.connectors.lock().values() {
|
||||
connector.schedule_present();
|
||||
|
|
|
|||
|
|
@ -389,8 +389,11 @@ impl MetalConnector {
|
|||
async fn present_loop(self: Rc<Self>) {
|
||||
loop {
|
||||
self.present_trigger.triggered().await;
|
||||
if let Err(e) = self.present(true) {
|
||||
log::error!("Could not present: {}", ErrorFmt(e));
|
||||
match self.present(true) {
|
||||
Ok(_) => self.state.set_backend_idle(false),
|
||||
Err(e) => {
|
||||
log::error!("Could not present: {}", ErrorFmt(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -772,6 +772,8 @@ impl XBackend {
|
|||
log::error!("Could not present image: {:?}", e);
|
||||
return;
|
||||
}
|
||||
|
||||
self.state.set_backend_idle(false);
|
||||
}
|
||||
|
||||
async fn handle_input_event(self: &Rc<Self>, event: &Event) -> Result<(), XBackendError> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue