From de0239d3edd558b845dfe3fcd7f19b2ae702c9e8 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sun, 2 Mar 2025 15:51:32 +0100 Subject: [PATCH] inputd: Automatically switch to first vt once created --- graphics/fbbootlogd/src/main.rs | 4 ---- graphics/vesad/src/main.rs | 3 --- inputd/src/main.rs | 5 +++++ 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/graphics/fbbootlogd/src/main.rs b/graphics/fbbootlogd/src/main.rs index ca1c3863df..8584718c5d 100644 --- a/graphics/fbbootlogd/src/main.rs +++ b/graphics/fbbootlogd/src/main.rs @@ -26,16 +26,12 @@ fn inner(daemon: redox_daemon::Daemon) -> ! { let mut scheme = FbbootlogScheme::new(); - let mut inputd_control_handle = inputd::ControlHandle::new().unwrap(); - // This is not possible for now as fbbootlogd needs to open new displays at runtime for graphics // driver handoff. In the future inputd may directly pass a handle to the display instead. //libredox::call::setrens(0, 0).expect("fbbootlogd: failed to enter null namespace"); daemon.ready().expect("failed to notify parent"); - inputd_control_handle.activate_vt(1).unwrap(); - loop { let request = match socket .next_request(SignalBehavior::Restart) diff --git a/graphics/vesad/src/main.rs b/graphics/vesad/src/main.rs index 541ce13d79..3a74ee42e9 100644 --- a/graphics/vesad/src/main.rs +++ b/graphics/vesad/src/main.rs @@ -83,7 +83,6 @@ fn main() { } fn inner(daemon: redox_daemon::Daemon, framebuffers: Vec, spec: &[()]) -> ! { let mut inputd_display_handle = DisplayHandle::new_early("vesa").unwrap(); - let mut inputd_control_handle = inputd::ControlHandle::new().unwrap(); for &() in spec.iter() { inputd_display_handle.register_vt().unwrap(); @@ -121,8 +120,6 @@ fn inner(daemon: redox_daemon::Daemon, framebuffers: Vec, spec: &[( daemon.ready().expect("failed to notify parent"); - inputd_control_handle.activate_vt(1).unwrap(); - let all = [Source::Input, Source::Scheme]; for event in all .into_iter() diff --git a/inputd/src/main.rs b/inputd/src/main.rs index 0667fca53e..97790238d7 100644 --- a/inputd/src/main.rs +++ b/inputd/src/main.rs @@ -266,6 +266,11 @@ impl Scheme for InputScheme { let vt = self.next_vt_id.fetch_add(1, Ordering::SeqCst); log::info!("inputd: created VT #{vt} for {device}"); self.vts.insert(vt, Vt::new(device.clone())); + + if self.active_vt.is_none() { + self.switch_vt(vt)?; + } + Ok(vt) } else if buf.len() % size_of::() == 0 { let copy = core::cmp::min(pending.len(), buf.len() / size_of::());