[PATCH] dix: Fix handling of do_not_propagate_mask window attribute

Kim Woelders kim at woelders.dk
Thu Jan 1 06:10:40 PST 2009


On Fri, 26 Dec 2008 07:34:39 +0100, Kim Woelders <kim at woelders.dk> wrote:

> Hello,
>
> It looks like handling of the do_not_propagate_mask window attribute has
> been broken at some point.
>
> Attached patch should fix that.
>

No comments?

To be more specific, I think the breakage was caused by commit  
32aa252e988be8cbfd4f7e373fb7b7736ef1f5f2: "dix: Process an input event as  
a single event, instead of two separate ones."

I have attached a test case that should demonstrate the problem.

The test program creates a 100x100 window with a 50x100 child window on
the left side.

The parent window selects (among other things) PointerMotionMask. The
child window selects no events but sets the do_not_propagate_mask to
PointerMotionMask.

When the pointer is moved over the window the test should report motion
events only when over the right half. However, with current git motion
events are reported over the entire window.
Things work as expected with Xorg 1.5 and with current git + suggested
patch.

/Kim
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test-do_not_propagate_mask.c
Type: application/octet-stream
Size: 1830 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20090101/765795ef/attachment.obj>


More information about the xorg mailing list