diff options
author | Dave Airlie <airlied@gmail.com> | 2013-05-03 10:05:04 +1000 |
---|---|---|
committer | Aaron Plattner <aplattner@nvidia.com> | 2014-03-12 08:49:20 -0700 |
commit | a6217be2d5a93a4c7b48f4081a4a8e14c3c97014 (patch) | |
tree | 9aced1cf481cbce5b5630e6f8b5039760e18b1ef | |
parent | 00c795e99fe29ecd56e05e915e508c7af0ac39ad (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.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -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) { |