From 3cbc4c10b52896324fe14d2ab56bd54577c9294c Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 13 Jun 2012 14:35:49 +0100 Subject: [PATCH] randr: expose unattached providers to the clients. This provides the unattached provider list to the clients. Reviewed-by: Keith Packard Reviewed-by: Adam Jackson Signed-off-by: Dave Airlie --- randr/rrprovider.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/randr/rrprovider.c b/randr/rrprovider.c index db7074c40..aae309501 100644 --- a/randr/rrprovider.c +++ b/randr/rrprovider.c @@ -59,6 +59,7 @@ ProcRRGetProviders (ClientPtr client) unsigned int extraLen; RRProvider *providers; int total_providers = 0, count_providers = 0; + ScreenPtr iter; REQUEST_SIZE_MATCH(xRRGetProvidersReq); rc = dixLookupWindow(&pWin, stuff->window, client, DixGetAttrAccess); @@ -71,6 +72,10 @@ ProcRRGetProviders (ClientPtr client) if (pScrPriv->provider) total_providers++; + xorg_list_for_each_entry(iter, &pScreen->unattached_list, unattached_head) { + pScrPriv = rrGetScrPriv(iter); + total_providers += pScrPriv->provider ? 1 : 0; + } pScrPriv = rrGetScrPriv(pScreen); rep.pad = 0; @@ -100,6 +105,9 @@ ProcRRGetProviders (ClientPtr client) providers = (RRProvider *)extra; ADD_PROVIDER(pScreen); + xorg_list_for_each_entry(iter, &pScreen->unattached_list, unattached_head) { + ADD_PROVIDER(iter); + } } if (client->swapped) {