The server was processing ET_RawMotion type when the cursor was wrapping to
another screen and getting wrong valuator values. This fix such issue
considering only ET_Motion, ET_KeyPress, ET_KeyRelease, ET_ButtonPress and
ET_ButtonRelease types when the cursor detects a new screen, keeping the
"normal" processing of device events.
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
We were generating a shared library, but this lib is foobar, the parser
requires some symbols from the X server or from the program its being linked
into. If the program its being linked into (say a python .so) has symbol
visibility enabled then it will fail to dynamic link, also if this .so has
symbol visiblity enabled it will fail to dynamic link.
Screw it go back to a .a file really unless someone cleans it up properly.
Signed-off-by: Dave Airlie <airlied@redhat.com>
- Based on driver pixmaps with some changes (completely transparent to driver).
- It helps with the problem of known software fallbacks, such as trapezoids.
- exaDoMigration is now called for all cases that provide a do_migration hook.
- exa_migration.c is renamed to exa_migration_classic.c
- Create a few seperate functions and a few private function pointers.
- Replace a few if conditions with a check for pExaPix->pDamage instead.
- This is in preperation of a third scheme that lies somewhere in between.
- Code clarity would have suffered (i started working on it and didn't like the mess).
XI1 grabs on slave devices leave the device attached - just like in earlier
versions of XI.
Tested-by: Thomas Jaeger
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
I don't understand the *why* ... I just see that it works better this way for games like Quake2 through wine. It *should* be better the other way, but somehow it's not.
I guess this will go in my list of puzzles to unravel.
(cherry picked from commit 65ae2d00e1)
Fixes xmodmap changes to modifiers to stop corrupting modifier maps
Previous code had two bugs:
- the code to increment mod was after the code to continue if no
modifier was set, so mod wouldn't be incremented for modifiers
with no keys mapped to them (such as if you called
xmodmap -e 'clear Lock')
- the value it set in the modifier map was the raw modifier number,
not the bitmask value for that modifier
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Xnest was disabled in 82fc102568 due do build
errors. These errors have since been fixed.
Re-enable Xnest by default to increase coverage by default builds.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
The meat of xnestUpdateModifierState was ifdef'd out in
6ef46c40e6. This resulted in stuck modifiers
when a modifier key release event wasn't sent to Xnest (e.g. Alt-Tab away).
See X.Org Bug 3664 <https://bugs.freedesktop.org/show_bug.cgi?id=3664> for
the original bug report.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Silences compiler warning.
Pointer.c: In function ‘xnestPointerProc’:
Pointer.c:64: warning: implicit declaration of function ‘XIGetKnownProperty’
Pointer.c:64: warning: nested extern declaration of ‘XIGetKnownProperty’
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
All Xnest needs is a single pointer+keyboard pair. AllocDevicePair sets them
up nicely with the name assigned etc.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Currently only None labels are passed in, in the future these labels should
be whatever the respective buttions/axes are.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
IKDS takes a DeviceIntPtr as first argument, and an RMVLO struct as second.
The keysyms stuff is long gone now.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Events.c: In function ‘xnestQueueKeyEvent’:
Events.c:112: warning: passing argument 2 of ‘mieqEnqueue’ from incompatible
pointer type
../../mi/mi.h:203: note: expected ‘union InternalEvent *’ but argument is of
type ‘struct xEvent *’
Events.c: In function ‘xnestCollectEvents’:
Events.c:141: warning: passing argument 2 of ‘mieqEnqueue’ from incompatible
pointer type
../../mi/mi.h:203: note: expected ‘union InternalEvent *’ but argument is of
type ‘struct xEvent *’
Events.c:150: warning: passing argument 2 of ‘mieqEnqueue’ from incompatible
pointer type
../../mi/mi.h:203: note: expected ‘union InternalEvent *’ but argument is of
type ‘struct xEvent *’
Events.c:160: warning: passing argument 2 of ‘mieqEnqueue’ from incompatible
pointer type
../../mi/mi.h:203: note: expected ‘union InternalEvent *’ but argument is of
type ‘struct xEvent *’
Events.c:193: warning: passing argument 2 of ‘mieqEnqueue’ from incompatible
pointer type
../../mi/mi.h:203: note: expected ‘union InternalEvent *’ but argument is of
type ‘struct xEvent *’
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>