From a6217be2d5a93a4c7b48f4081a4a8e14c3c97014 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 3 May 2013 10:05:04 +1000 Subject: [PATCH] xrandr: allow disconnecting of offload and outputs Before the lookup code passing a 0 XID would disconnect, this fixes it backup. Signed-off-by: Dave Airlie Reviewed-by: Aaron Plattner Tested-by: Aaron Plattner Signed-off-by: Aaron Plattner --- xrandr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/xrandr.c b/xrandr.c index ee72f5a..e08a7d6 100644 --- a/xrandr.c +++ b/xrandr.c @@ -2521,6 +2521,8 @@ find_provider (name_t *name) { int i; + if ((name->kind & name_xid) && name->xid == 0) + return NULL; for (i = 0; i < num_providers; i++) { provider_t *p = &providers[i]; name_kind_t common = name->kind & p->provider.kind; @@ -3304,7 +3306,7 @@ main (int argc, char **argv) provider = find_provider (&provider_name); source = find_provider(&output_source_provider_name); - XRRSetProviderOutputSource(dpy, provider->provider.xid, source->provider.xid); + XRRSetProviderOutputSource(dpy, provider->provider.xid, source ? source->provider.xid : 0); } if (provsetoffsink) { @@ -3319,7 +3321,7 @@ main (int argc, char **argv) provider = find_provider (&provider_name); sink = find_provider(&offload_sink_provider_name); - XRRSetProviderOffloadSink(dpy, provider->provider.xid, sink->provider.xid); + XRRSetProviderOffloadSink(dpy, provider->provider.xid, sink ? sink->provider.xid : 0); } if (setit_1_2) { -- 2.32.0.93.g670b81a890