SDL2.spec.in
author Ryan C. Gordon
Mon, 21 Aug 2017 00:42:06 -0400
changeset 11334 749cb40916f2
parent 9707 5ca9f59ab336
child 12839 1b94a9e6746e
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 Summary: Simple DirectMedia Layer
     2 Name: SDL2
     3 Version: @SDL_VERSION@
     4 Release: 2
     5 Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz
     6 URL: http://www.libsdl.org/
     7 License: zlib
     8 Group: System Environment/Libraries
     9 BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
    10 Prefix: %{_prefix}
    11 %ifos linux
    12 Provides: libSDL2-2.0.so.0
    13 %endif
    14 
    15 %define __defattr %defattr(-,root,root)
    16 %define __soext so
    17 
    18 %description
    19 This is the Simple DirectMedia Layer, a generic API that provides low
    20 level access to audio, keyboard, mouse, and display framebuffer across
    21 multiple platforms.
    22 
    23 %package devel
    24 Summary: Libraries, includes and more to develop SDL applications.
    25 Group: Development/Libraries
    26 Requires: %{name} = %{version}
    27 
    28 %description devel
    29 This is the Simple DirectMedia Layer, a generic API that provides low
    30 level access to audio, keyboard, mouse, and display framebuffer across
    31 multiple platforms.
    32 
    33 This is the libraries, include files and other resources you can use
    34 to develop SDL applications.
    35 
    36 
    37 %prep
    38 %setup -q 
    39 
    40 %build
    41 %ifos linux
    42 CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-directfb
    43 %else
    44 %configure
    45 %endif
    46 make
    47 
    48 %install
    49 rm -rf $RPM_BUILD_ROOT
    50 %ifos linux
    51 make install prefix=$RPM_BUILD_ROOT%{prefix} \
    52              bindir=$RPM_BUILD_ROOT%{_bindir} \
    53              libdir=$RPM_BUILD_ROOT%{_libdir} \
    54              includedir=$RPM_BUILD_ROOT%{_includedir} \
    55              datadir=$RPM_BUILD_ROOT%{_datadir} \
    56              mandir=$RPM_BUILD_ROOT%{_mandir}
    57 %else
    58 %makeinstall
    59 %endif
    60 
    61 %clean
    62 rm -rf $RPM_BUILD_ROOT
    63 
    64 %files
    65 %{__defattr}
    66 %doc README*.txt COPYING.txt CREDITS.txt BUGS.txt
    67 %{_libdir}/lib*.%{__soext}.*
    68 
    69 %files devel
    70 %{__defattr}
    71 %doc docs/README*.md
    72 %{_bindir}/*-config
    73 %{_libdir}/lib*.a
    74 %{_libdir}/lib*.la
    75 %{_libdir}/lib*.%{__soext}
    76 %{_includedir}/*/*.h
    77 %{_libdir}/pkgconfig/*
    78 %{_datadir}/aclocal/*
    79 
    80 %changelog
    81 * Thu Jun 04 2015 Ryan C. Gordon <icculus@icculus.org>
    82 - Fixed README paths.
    83 
    84 * Sun Dec 07 2014 Simone Contini <s.contini@oltrelinux.com>
    85 - Fixed changelog date issue and docs filenames
    86 
    87 * Sun Jan 22 2012 Sam Lantinga <slouken@libsdl.org>
    88 - Updated for SDL 2.0
    89 
    90 * Tue May 16 2006 Sam Lantinga <slouken@libsdl.org>
    91 - Removed support for Darwin, due to build problems on ps2linux
    92 
    93 * Sat Jan 03 2004 Anders Bjorklund <afb@algonet.se>
    94 - Added support for Darwin, updated spec file
    95 
    96 * Wed Jan 19 2000 Sam Lantinga <slouken@libsdl.org>
    97 - Re-integrated spec file into SDL distribution
    98 - 'name' and 'version' come from configure 
    99 - Some of the documentation is devel specific
   100 - Removed SMP support from %build - it doesn't work with libtool anyway
   101 
   102 * Tue Jan 18 2000 Hakan Tandogan <hakan@iconsult.com>
   103 - Hacked Mandrake sdl spec to build 1.1
   104 
   105 * Sun Dec 19 1999 John Buswell <johnb@mandrakesoft.com>
   106 - Build Release
   107 
   108 * Sat Dec 18 1999 John Buswell <johnb@mandrakesoft.com>
   109 - Add symlink for libSDL-1.0.so.0 required by sdlbomber
   110 - Added docs
   111 
   112 * Thu Dec 09 1999 Lenny Cartier <lenny@mandrakesoft.com>
   113 - v 1.0.0
   114 
   115 * Mon Nov  1 1999 Chmouel Boudjnah <chmouel@mandrakesoft.com>
   116 - First spec file for Mandrake distribution.
   117 
   118 # end of file