summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2013-05-03 10:05:04 +1000
committerAaron Plattner <aplattner@nvidia.com>2014-03-12 08:49:20 -0700
commita6217be2d5a93a4c7b48f4081a4a8e14c3c97014 (patch)
tree9aced1cf481cbce5b5630e6f8b5039760e18b1ef
parent00c795e99fe29ecd56e05e915e508c7af0ac39ad (diff)
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 <airlied@redhat.com> Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Tested-by: Aaron Plattner <aplattner@nvidia.com> Signed-off-by: Aaron Plattner <aplattner@nvidia.com>
-rw-r--r--xrandr.c6
1 files 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)
{