diff options
author | Ben Wolsieffer <benwolsieffer@gmail.com> | 2014-08-26 22:08:02 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-08-26 22:08:02 +0200 |
commit | 3c56cab44150ad47323970cfadfb0257c6305a74 (patch) | |
tree | c03589bf880d471a08ba2bbe1b36e3ff9e6ed724 /src/login/logind-core.c | |
parent | 36202fd2bc252616966166c98ccb0e0e5ece1fc9 (diff) |
logind: add HandleLidSwitchDocked= option to logind.conf + documentation
https://bugs.freedesktop.org/show_bug.cgi?id=82485
Diffstat (limited to 'src/login/logind-core.c')
-rw-r--r-- | src/login/logind-core.c | 22 |
1 files changed, 22 insertions, 0 deletions
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; +} |