From 7b8ebe9dcadc90e13886351f7fe81de12da82fae Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 14 Mar 2026 16:09:46 +0100 Subject: [PATCH] drivers/graphics: Return size of CRTC from fpath This is the actual size of the Orbital desktop. Previously resizing a virtio-gpu window after Orbital started but before logging in would cause the launcher to be out of view. --- drivers/graphics/driver-graphics/src/lib.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/graphics/driver-graphics/src/lib.rs b/drivers/graphics/driver-graphics/src/lib.rs index 339dfc45c4..40a847b322 100644 --- a/drivers/graphics/driver-graphics/src/lib.rs +++ b/drivers/graphics/driver-graphics/src/lib.rs @@ -421,7 +421,11 @@ impl SchemeSync for GraphicsSchemeInner { fn fpath(&mut self, id: usize, buf: &mut [u8], _ctx: &CallerCtx) -> syscall::Result { let path = match self.handles.get(&id).ok_or(Error::new(EBADF))? { Handle::V1Screen { vt, screen } => { - let (width, height) = self.adapter.display_size(*screen); + let crtc_id = self.objects.crtc_ids()[*screen]; + let crtc = self.objects.get_crtc(crtc_id).unwrap().lock().unwrap(); + let (width, height) = crtc + .mode + .map_or((640, 480), |mode| (mode.hdisplay, mode.vdisplay)); format!("{}:{vt}.{screen}/{width}/{height}", self.scheme_name) } Handle::V2 {