From 3c56cab44150ad47323970cfadfb0257c6305a74 Mon Sep 17 00:00:00 2001 From: Ben Wolsieffer Date: Tue, 26 Aug 2014 22:08:02 +0200 Subject: logind: add HandleLidSwitchDocked= option to logind.conf + documentation https://bugs.freedesktop.org/show_bug.cgi?id=82485 --- src/login/logind-core.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/login/logind-core.c') diff --git a/src/login/logind-core.c b/src/login/logind-core.c index 053d2ed63e..ed7ea5da31 100644 --- a/src/login/logind-core.c +++ b/src/login/logind-core.c @@ -537,3 +537,25 @@ int manager_count_displays(Manager *m) { return n; } + +bool manager_is_docked_or_multiple_displays(Manager *m) { + int n; + + /* If we are docked don't react to lid closing */ + if (manager_is_docked(m)) { + log_debug("System is docked."); + return true; + } + + /* If we have more than one display connected, + * assume that we are docked. */ + n = manager_count_displays(m); + if (n < 0) + log_warning("Display counting failed: %s", strerror(-n)); + else if (n > 1) { + log_debug("Multiple (%i) displays connected.", n); + return true; + } + + return false; +} -- cgit v1.2.3-54-g00ecf