chiark / gitweb /
bus-proxyd: ignore errors from sd_bus_creds_get_well_known_names()
[elogind.git] / src / login / logind-core.c
index 053d2ed63e189df1cfec0c53e8d3093deb672ca7..88694f9bac1beec8b0d8ff8552e8243289c82624 100644 (file)
@@ -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_errno(n, "Display counting failed: %m");
+        else if (n > 1) {
+                log_debug("Multiple (%i) displays connected.", n);
+                return true;
+        }
+
+        return false;
+}