.hgignore
author Ryan C. Gordon
Mon, 21 Aug 2017 00:42:06 -0400
changeset 11334 749cb40916f2
parent 10303 b326f93e1bc5
child 11702 cf166abbde4a
permissions -rw-r--r--
x11: specify event mask for buttons when grabbing pointer (thanks, Stas!).

This fixes a strange corner case (notes appended below), and should be
safe to do anyhow.

Fixes Bugzilla #3674.

"I did more tests.
It appears the bug only happens if there is
another window on the screen that has "always
on top" property. For me it is xawtv - it is
always opened in a screen corner. Closing
xawtv or removing "always on top" property
from it makes the problem to go away.
Plus, it doesn't appear like the buttons are
not delivered at all. It appears that instead
the button presses are delivered on some mouse
positions, but not delivered when you move the
mouse to other part of the window... So this is
really weird and is likely somewhere deep in the
Xorg.
Maybe somehow it happens that the cursor is
actually above the xawtv window, but, because
my app uses grab, it is not visible there, and
in that case the events are not delivered to
my app?
But with my patch the button events are
always delivered flawlessly, it seems.

Hmm, and that indeed seems to explain my problem:
if the mask is set properly and my app uses
grab, then, even if the mouse is above some
other window, the events would still be delivered
to the grabbing app, which is what actually wanted
because my app uses relative mouse mode, so it
doesn't know the pointer can cross some other window
(my app draws the pointer itself).
So my current theory is that my patch only enforces
the mouse grab, which otherwise can be tricked by
some other window preventing the button events
delivery (but motion events are still delivered
via xinput2, which makes it all look very obscure)."
     1 syntax:glob
     2 aclocal.m4
     3 autom4te*
     4 config.cache
     5 config.log
     6 config.status
     7 Makefile
     8 sdl-config
     9 SDL2.spec
    10 build
    11 gen
    12 Build
    13 
    14 # for Xcode
    15 *.orig
    16 *.swp
    17 *.tmp
    18 *.rej
    19 *~
    20 *.o
    21 *.mode1*
    22 *.perspective*
    23 *.pbxuser
    24 (^|/)build($|/)
    25 .DS_Store
    26 xcuserdata
    27 *.xcworkspace
    28 
    29 # for Visual C++
    30 Debug
    31 Release
    32 *.user
    33 *.ncb
    34 *.suo
    35 *.sdf
    36 VisualC/tests/loopwave/sample.wav
    37 VisualC/tests/testautomation/CompareSurfaces0001_Reference.bmp
    38 VisualC/tests/testautomation/CompareSurfaces0001_TestOutput.bmp
    39 VisualC/tests/testgamecontroller/axis.bmp
    40 VisualC/tests/testgamecontroller/button.bmp
    41 VisualC/tests/testgamecontroller/controllermap.bmp
    42 VisualC/tests/testoverlay2/moose.dat
    43 VisualC/tests/testrendertarget/icon.bmp
    44 VisualC/tests/testrendertarget/sample.bmp
    45 VisualC/tests/testscale/icon.bmp
    46 VisualC/tests/testscale/sample.bmp
    47 VisualC/tests/testsprite2/icon.bmp
    48 VisualC/visualtest/icon.bmp
    49 VisualC/visualtest/testquit.actions
    50 VisualC/visualtest/testquit.config
    51 VisualC/visualtest/testquit.exe
    52 VisualC/visualtest/testquit.parameters
    53 VisualC/visualtest/testsprite2.exe
    54 VisualC/visualtest/testsprite2_sample.actions
    55 VisualC/visualtest/testsprite2_sample.config
    56 VisualC/visualtest/testsprite2_sample.parameters
    57 
    58 # for Android
    59 android-project/local.properties
    60 
    61 sdl.pc
    62 test/autom4te*
    63 test/config.cache
    64 test/config.log
    65 test/config.status
    66 test/Makefile
    67 test/SDL2.dll
    68 test/checkkeys
    69 test/controllermap
    70 test/loopwave
    71 test/loopwavequeue
    72 test/testatomic
    73 test/testaudiohotplug
    74 test/testaudioinfo
    75 test/testautomation
    76 test/testdraw2
    77 test/testdrawchessboard
    78 test/testdropfile
    79 test/testerror
    80 test/testfile
    81 test/testgamecontroller
    82 test/testgesture
    83 test/testgl2
    84 test/testgles
    85 test/testgles2
    86 test/testhaptic
    87 test/testhittesting
    88 test/testhotplug
    89 test/testiconv
    90 test/testime
    91 test/testintersections
    92 test/testjoystick
    93 test/testkeys
    94 test/testloadso
    95 test/testlock
    96 test/testmessage
    97 test/testmultiaudio
    98 test/testnative
    99 test/testoverlay2
   100 test/testplatform
   101 test/testpower
   102 test/testfilesystem
   103 test/testrelative
   104 test/testrendercopyex
   105 test/testrendertarget
   106 test/testresample
   107 test/testrumble
   108 test/testscale
   109 test/testsem
   110 test/testshader
   111 test/testshape
   112 test/testsprite2
   113 test/testspriteminimal
   114 test/teststreaming
   115 test/testthread
   116 test/testtimer
   117 test/testver
   118 test/testviewport
   119 test/testwm2
   120 test/testbounds
   121 test/torturethread
   122 test/testdisplayinfo
   123 test/testqsort
   124 test/testaudiocapture
   125 test/*.exe
   126 test/*.dSYM
   127 buildbot
   128 test/buildbot