+
+ /* If we have more than one or no displays connected,
+ * don't react to lid closing. The no display case we
+ * treat like this under the assumption that there is
+ * no modern drm driver available. */
+ n = manager_count_displays(m);
+ if (n < 0)
+ log_warning("Display counting failed: %s", strerror(-n));
+ else if (n != 1) {
+ log_debug("Ignoring lid switch request, %i displays connected.", n);
+ return 0;
+ }
+
+ /* If the last system suspend or startup is too close,
+ * let's not suspend for now, to give USB docking
+ * stations some time to settle so that we can
+ * properly watch its displays. */
+ if (m->lid_switch_ignore_event_source) {
+ log_debug("Ignoring lid switch request, system startup or resume too close.");
+ return 0;
+ }