aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorathul-krishna-kr <athul.krishna.kr@protonmail.com>2025-10-19 12:09:51 +0000
committerIvan Molodetskikh <yalterz@gmail.com>2025-10-19 16:01:37 +0300
commitc8eea8ee9ddf795da8cb356599f17e2dc7cfea20 (patch)
treeac0ca28802df127d9b2ea097c5134ad819310a45 /src
parent23cd5aa78a26ccf57c6a7993313e42a5c39d43d8 (diff)
downloadniri-c8eea8ee9ddf795da8cb356599f17e2dc7cfea20.tar.gz
niri-c8eea8ee9ddf795da8cb356599f17e2dc7cfea20.tar.bz2
niri-c8eea8ee9ddf795da8cb356599f17e2dc7cfea20.zip
backend/tty: Consider only primary node in drm udev event
Diffstat (limited to 'src')
-rw-r--r--src/backend/tty.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs
index ab242f6c..530280ab 100644
--- a/src/backend/tty.rs
+++ b/src/backend/tty.rs
@@ -512,6 +512,13 @@ impl Tty {
let node = DrmNode::from_dev_id(device_id)?;
+ // Only consider primary node on udev event
+ // https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/768fbaad54027f8dd027e7e015e8eeb93cb38c52
+ if node.ty() != NodeType::Primary {
+ debug!("not a primary node, skipping");
+ return Ok(());
+ }
+
if self.ignored_nodes.contains(&node) {
debug!("node is ignored, skipping");
return Ok(());
@@ -649,6 +656,11 @@ impl Tty {
return;
};
+ if node.ty() != NodeType::Primary {
+ debug!("not a primary node, skipping");
+ return;
+ }
+
if self.ignored_nodes.contains(&node) {
debug!("node is ignored, skipping");
return;
@@ -767,6 +779,11 @@ impl Tty {
return;
};
+ if node.ty() != NodeType::Primary {
+ debug!("not a primary node, skipping");
+ return;
+ }
+
let Some(device) = self.devices.get_mut(&node) else {
warn!("unknown device");
return;