diff --git a/src/backend/kms/drm_helpers.rs b/src/backend/kms/drm_helpers.rs index debec901..cfd9f849 100644 --- a/src/backend/kms/drm_helpers.rs +++ b/src/backend/kms/drm_helpers.rs @@ -26,7 +26,7 @@ pub fn display_configuration( .iter() .flat_map(|conn| device.get_connector(*conn).ok()) { - if let Some(enc) = device.get_connector(conn.handle())?.current_encoder() { + if let Some(enc) = conn.current_encoder() { if let Some(crtc) = device.get_encoder(enc)?.crtc() { // If is is connected we found a mapping if conn.state() == ConnectorState::Connected { diff --git a/src/backend/kms/mod.rs b/src/backend/kms/mod.rs index 3cd682b4..269554c8 100644 --- a/src/backend/kms/mod.rs +++ b/src/backend/kms/mod.rs @@ -478,8 +478,8 @@ impl State { let changes = device.enumerate_surfaces()?; let mut w = self.common.shell.global_space().size.w; for crtc in changes.removed { - if let Some(surface) = device.surfaces.get_mut(&crtc) { - if let Some(token) = surface.render_timer_token.take() { + if let Some(surface) = device.surfaces.remove(&crtc) { + if let Some(token) = surface.render_timer_token { self.common.event_loop_handle.remove(token); } w -= surface.output.current_mode().map(|m| m.size.w).unwrap_or(0);