compositor-drm: Ignore disconnected connectors width
authorBenjamin Franzke <benjaminfranzke@googlemail.com>
Tue, 2 Aug 2011 11:03:54 +0000 (13:03 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 12 Aug 2011 14:17:12 +0000 (10:17 -0400)
- Fixes segfault, if first enumerated connector is not connected.
- Corrects x-offset where e.g. the 2. of 3 connectors is not connected.
  (where width of 1. output would have taken twice as
   offset for output at 3. connector)

compositor/compositor-drm.c

index b6560bd..d097323 100644 (file)
@@ -516,13 +516,15 @@ create_outputs(struct drm_compositor *ec, int option_connector)
 
                if (connector->connection == DRM_MODE_CONNECTED &&
                    (option_connector == 0 ||
-                    connector->connector_id == option_connector))
+                    connector->connector_id == option_connector)) {
                        if (create_output_for_connector(ec, resources,
                                                        connector, x, y) < 0)
                                return -1;
 
-               x += container_of(ec->base.output_list.prev, struct wlsc_output,
-                                 link)->current->width;
+                       x += container_of(ec->base.output_list.prev,
+                                         struct wlsc_output,
+                                         link)->current->width;
+               }
 
                drmModeFreeConnector(connector);
        }