]> diplodocus.org Git - xorg-xinput/commitdiff
test_xi2: don't map the window before selecting for events.
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 24 Jun 2009 00:30:45 +0000 (10:30 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Wed, 24 Jun 2009 02:30:35 +0000 (12:30 +1000)
Mapping the window before selecting for XI2 events leaves some events out
(e.g. enter events if the pointer is already in the area where the window is
being mapped).

Reported-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
src/test_xi2.c

index 5600291afd49d03e4905ec45a6a6dad183e0207b..22016924e0b0a21f97d32a4ad0c319ce7a26717a 100644 (file)
@@ -36,10 +36,8 @@ static Window create_win(Display *dpy)
     Window subwindow = XCreateSimpleWindow(dpy, win, 50, 50, 50, 50, 0, 0,
             BlackPixel(dpy, 0));
 
     Window subwindow = XCreateSimpleWindow(dpy, win, 50, 50, 50, 50, 0, 0,
             BlackPixel(dpy, 0));
 
-    XSelectInput(dpy, win, ExposureMask);
     XMapWindow(dpy, subwindow);
     XMapWindow(dpy, subwindow);
-    XMapWindow(dpy, win);
-    XFlush(dpy);
+    XSelectInput(dpy, win, ExposureMask);
     return win;
 }
 
     return win;
 }
 
@@ -268,8 +266,6 @@ test_xi2(Display    *display,
     list(display, argc, argv, name, desc);
     win = create_win(display);
 
     list(display, argc, argv, name, desc);
     win = create_win(display);
 
-    XSync(display, False);
-
     /* Select for motion events */
     mask.deviceid = XIAllDevices;
     mask.mask_len = 2;
     /* Select for motion events */
     mask.deviceid = XIAllDevices;
     mask.mask_len = 2;
@@ -287,6 +283,7 @@ test_xi2(Display    *display,
     XISetMask(mask.mask, XI_HierarchyChanged);
     XISetMask(mask.mask, XI_PropertyEvent);
     XISelectEvents(display, win, &mask, 1);
     XISetMask(mask.mask, XI_HierarchyChanged);
     XISetMask(mask.mask, XI_PropertyEvent);
     XISelectEvents(display, win, &mask, 1);
+    XMapWindow(display, win);
     XSync(display, False);
 
     {
     XSync(display, False);
 
     {