summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Services/WindowServer/HardwareScreenBackend.cpp11
-rw-r--r--Userland/Services/WindowServer/ScreenLayout.ipp2
2 files changed, 10 insertions, 3 deletions
diff --git a/Userland/Services/WindowServer/HardwareScreenBackend.cpp b/Userland/Services/WindowServer/HardwareScreenBackend.cpp
index 36469a5cd6..f0bf2912b5 100644
--- a/Userland/Services/WindowServer/HardwareScreenBackend.cpp
+++ b/Userland/Services/WindowServer/HardwareScreenBackend.cpp
@@ -66,8 +66,15 @@ ErrorOr<void> HardwareScreenBackend::set_head_resolution(FBHeadResolution resolu
mode_setting.vertical_active = resolution.height;
mode_setting.horizontal_stride = resolution.pitch;
auto rc = fb_set_head_mode_setting(m_framebuffer_fd, &mode_setting);
- if (rc != 0)
- return Error::from_syscall("fb_set_head_mode_setting", rc);
+ if (rc != 0) {
+ dbgln("Failed to set backend mode setting: falling back to safe resolution");
+ rc = fb_set_safe_head_mode_setting(m_framebuffer_fd);
+ if (rc != 0) {
+ dbgln("Failed to set backend safe mode setting: aborting");
+ return Error::from_syscall("fb_set_safe_head_mode_setting", rc);
+ }
+ dbgln("Failed to set backend mode setting: falling back to safe resolution - success.");
+ }
}
return {};
diff --git a/Userland/Services/WindowServer/ScreenLayout.ipp b/Userland/Services/WindowServer/ScreenLayout.ipp
index 3d5f32f1cd..f52a4096f2 100644
--- a/Userland/Services/WindowServer/ScreenLayout.ipp
+++ b/Userland/Services/WindowServer/ScreenLayout.ipp
@@ -250,7 +250,7 @@ bool ScreenLayout::load_config(const Core::ConfigFile& config_file, String* erro
*this = {};
return false;
}
- auto device = (mode == Screen::Mode::Device) ? config_file.read_entry(group_name, "Device") : Optional<String> {};
+ auto device = (mode == Screen::Mode::Device || mode == Screen::Mode::DisplayConnectorDevice) ? config_file.read_entry(group_name, "Device") : Optional<String> {};
screens.append({ mode, device,
{ config_file.read_num_entry(group_name, "Left"), config_file.read_num_entry(group_name, "Top") },
{ config_file.read_num_entry(group_name, "Width"), config_file.read_num_entry(group_name, "Height") },