From 3d63f5e644604a6d749c8c3405fac481b7a34cdd Mon Sep 17 00:00:00 2001 From: Ivan Molodetskikh Date: Wed, 15 May 2024 08:13:56 +0400 Subject: tty: Try harder to find a GBM device --- src/backend/tty.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/backend/tty.rs b/src/backend/tty.rs index 392a038a..a96eb064 100644 --- a/src/backend/tty.rs +++ b/src/backend/tty.rs @@ -1537,7 +1537,15 @@ impl Tty { #[cfg(feature = "xdp-gnome-screencast")] pub fn primary_gbm_device(&self) -> Option> { - self.devices.get(&self.primary_node).map(|d| d.gbm.clone()) + // Try to find a device corresponding to the primary render node. + let device = self + .devices + .values() + .find(|d| d.render_node == self.primary_render_node); + // Otherwise, try to get the device corresponding to the primary node. + let device = device.or_else(|| self.devices.get(&self.primary_node)); + + Some(device?.gbm.clone()) } pub fn set_monitors_active(&mut self, active: bool) { -- cgit