aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-11-19 08:44:35 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-11-19 08:44:57 +0300
commita19326fd129c3aa03da7ea32cbc1602fee93284c (patch)
treedcb0e49ab1f5dbdb930628bba599a1692fb4122c
parent6ca21e7bfdd559263dbb54fb2bef51c97ba791fc (diff)
downloadniri-a19326fd129c3aa03da7ea32cbc1602fee93284c.tar.gz
niri-a19326fd129c3aa03da7ea32cbc1602fee93284c.tar.bz2
niri-a19326fd129c3aa03da7ea32cbc1602fee93284c.zip
tty: Extract should_disable_laptop_panels()
-rw-r--r--src/backend/tty.rs36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/backend/tty.rs b/src/backend/tty.rs
index c123cc57..023e1cd8 100644
--- a/src/backend/tty.rs
+++ b/src/backend/tty.rs
@@ -1998,6 +1998,26 @@ impl Tty {
}
}
+ fn should_disable_laptop_panels(&self, is_lid_closed: bool) -> bool {
+ if !is_lid_closed {
+ return false;
+ }
+
+ let config = self.config.borrow();
+ if !config.debug.keep_laptop_panel_on_when_lid_is_closed {
+ // Check if any external monitor is connected.
+ for device in self.devices.values() {
+ for (connector, _crtc) in device.drm_scanner.crtcs() {
+ if !is_laptop_panel(&format_connector_name(connector)) {
+ return true;
+ }
+ }
+ }
+ }
+
+ false
+ }
+
pub fn on_output_config_changed(&mut self, niri: &mut Niri) {
let _span = tracy_client::span!("Tty::on_output_config_changed");
@@ -2009,21 +2029,7 @@ impl Tty {
self.update_output_config_on_resume = false;
// Figure out if we should disable laptop panels.
- let mut disable_laptop_panels = false;
- if niri.is_lid_closed {
- let config = self.config.borrow();
- if !config.debug.keep_laptop_panel_on_when_lid_is_closed {
- // Check if any external monitor is connected.
- 'outer: for device in self.devices.values() {
- for (connector, _crtc) in device.drm_scanner.crtcs() {
- if !is_laptop_panel(&format_connector_name(connector)) {
- disable_laptop_panels = true;
- break 'outer;
- }
- }
- }
- }
- }
+ let disable_laptop_panels = self.should_disable_laptop_panels(niri.is_lid_closed);
let should_disable = |connector: &str| disable_laptop_panels && is_laptop_panel(connector);
let mut to_disconnect = vec![];