randr: Compare all the bytes in RRPostPendingProperties
RRPostPendingProperties tries to compare the pending and current property values to decide whether they're actually changing. However, it does this using a memcmp that passes in pending_value->size as the number of bytes. This is actually the number of elements, where each element is (pending_value->format / 8) bytes long. This causes the pending value to not be propagated if the first pending_value->size bytes are the same and only the end of it is changing. Fix this by computing the total number of bytes to compare in the memcmp. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
b8f61c11c9
commit
08dfff92e8
|
@ -283,7 +283,7 @@ RRPostPendingProperties (RROutputPtr output)
|
|||
pending_value->format == current_value->format &&
|
||||
pending_value->size == current_value->size &&
|
||||
!memcmp (pending_value->data, current_value->data,
|
||||
pending_value->size))
|
||||
pending_value->size * (pending_value->format / 8)))
|
||||
continue;
|
||||
|
||||
if (RRChangeOutputProperty (output, property->propertyName,
|
||||
|
|
Loading…
Reference in New Issue
Block a user