Commit Graph

114 Commits

Author SHA1 Message Date
Daniel Stone
57b767d292 DMX: Remove useless miPointerUpdateSprite call
miPointerUpdateSprite is already called from mieqProcessInputEvents, so
calling it by hand immediately after isn't massively helpful.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-07-01 08:46:27 +10:00
Peter Hutterer
20fb07f436 input: remove DDX event list handling
The current approach to event posting required the DDX to request the event
list (allocated by the DIX) and then pass that list into QueuePointerEvent
and friends.

Remove this step and use the DIX event list directly. This means that
QueuePointerEvent is not reentrant but it wasn't before anyway.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-05-11 14:27:36 +10:00
Peter Hutterer
8670c46bdf input: replace EventListPtr with InternalEvent array
EventListPtr is a relic from pre-1.6, when we had protocol events in the
event queue and thus events of varying size.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-05-11 14:27:36 +10:00
Peter Hutterer
e7150db535 input: Provide Queue{Button|Keyboard|Proximity}Event helpers
Don't require every caller to use GPE + mieqEnqueue, provide matching
Queue...Event functions instead.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-05-11 14:27:33 +10:00
Peter Hutterer
071a6ac4d0 input: remove GetKeyboardValuatorEvents, this is now unnecessary.
GetKeyboardValuatorEvents handles NULL valuator masks already, so the
GetKeyboardEvents wrapper is not needed. Rename GKVE to GKE.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-04-18 13:05:46 +10:00
Adam Jackson
7a08f9abef dmx: warning fixes
dmxinputinit.c: In function ‘dmxBlockHandler’:
dmxinputinit.c:610:44: warning: cast from pointer to integer of different size
dmxinputinit.c: In function ‘dmxWakeupHandler’:
dmxinputinit.c:637:41: warning: cast from pointer to integer of different size
dmxinputinit.c: In function ‘dmxInputInit’:
dmxinputinit.c:1041:36: warning: cast to pointer from integer of different size

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20 21:03:42 -05:00
Adam Jackson
ffd323b7c0 dmx: warning fix
dmxinputinit.c: At top level:
dmxinputinit.c:135:29: warning: ‘DMXCommonOth’ defined but not used

DMXCommonOth is actually mentioned in a #if 0 block, so delete it and
the block that references it.  If anyone needs it, git remembers.

Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20 21:03:35 -05:00
Peter Hutterer
dd11f734a9 input: remove "mode" field from ValuatorClassRec.
We have per-axis mode now. For those bits that still need it (XI 1.x),
assume that the first axis holds the device's mode.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2010-10-22 16:19:00 +10:00
Peter Hutterer
e909af88bf dmx: clarify a valuator mode condition.
Relative is defined as 0, so change the condition to be more obvious.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2010-10-22 16:18:59 +10:00
Chase Douglas
65c0fc81eb Add support for per-axis valuator modes (Relative/Absolute)
The XI2 protocol supports per-axis modes, but the server so far does
not. This change adds support in the server.

A complication is the fact that XI1 does not support per-axis modes.
The solution provided here is to set a per-device mode that defines the
mode of at least the first two valuators (X and Y). Note that initializing
the first two axes to a different mode than the device mode will fail.

For XI1 events, any axes following the first two that have the same mode
will be sent to clients, up to the first axis that has a different mode.
Thus, if a device has relative, then absolute, then relative mode axes,
only the first block of relative axes will be sent over XI1.

Since the XI2 protocol supports per-axis modes, all axes are sent to the
client.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
2010-10-22 13:37:57 +10:00
Peter Hutterer
675f4a8525 Abstract valuator masks through a set of APIs.
This commit introduces an abstraction API for handling masked valuators. The
intent is that drivers just allocate a mask, set the data and pass the mask
to the server. The actual storage type of the mask is hidden from the
drivers.

The new calls for drivers are:
    valuator_mask_new()     /* to allocate a valuator mask */
    valuator_mask_zero()    /* to reset a mask to zero */
    valuator_mask_set()     /* to set a valuator value */

The new interface to the server is
    xf86PostMotionEventM()
    xf86PostButtonEventM()
    xf86PostKeyboardEventM()
    xf86PostProximityEventM()

all taking a mask instead of the valuator array.

The ValuatorMask is currently defined for MAX_VALUATORS fixed size due to
memory allocation restrictions in SIGIO handlers.

For easier review, a lot of the code still uses separate valuator arrays.
This will be fixed in a later patch.

This patch was initially written by Chase Douglas.

Signed-off-by: Chase Douglas <chase.douglas@canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
2010-10-22 11:02:48 +10:00
Peter Hutterer
4ac3be29bc input: Purge AddOtherInputDevices DDX hook.
This hook wasn't used by any DDX. Device addition and removal is handled by
the config backend, so we don't need to do anything special that during the
ListInputDevices request processing.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-09-01 15:26:52 +10:00
Peter Hutterer
cb672a461c input: remove OpenInputDevice and CloseInputDevice DDX hooks.
In theory, these hooks were to be used for DDX-specific device enablement.
None of the DDXs however did anything here. Now we call DEVICE_INIT on all
devices when they are added, so the xfree86 DDX as the only one with real
code didn't do anything here.

kdrive checked for device validity but that's already handled in
ProcXOpenDevice.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-09-01 15:26:51 +10:00
Peter Hutterer
0fb7a5c261 input: Purge Register*Device() functions.
RegisterPointerDevice() and RegisterKeyboardDevice() were already mapped to
RegisterOtherDevice() and obsolete.

RegisterOtherDevice() was called for all devices and the two assignments can
simply be moved into AddInputDevice(). Purge RegisterOtherDevice() and
pretend it never happened.

*lalalalala*

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-09-01 15:26:47 +10:00
Peter Hutterer
fd4f5059f0 dix: purge leftover manual key down bit setting.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-07-07 13:29:46 +10:00
Mikhail Gusarov
1615836695 dmx: Get rid of xstrdup when argument is definitely non-NULL
ditto for DMX

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2010-06-11 19:04:23 +07:00
Mikhail Gusarov
0a4d8cbdcd Remove more superfluous if(p) checks around free(p)
This patch has been generated by the following Coccinelle semantic patch:

@@
expression E;
@@

-if(E) { free(E); }
+free(E);

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2010-06-06 20:27:18 +07:00
Keith Packard
2dc138922b Rename region macros to eliminate screen argument
This is a combination of a huge mechanical patch and a few small
fixups required to finish the job. They were reviewed separately, but
because the server does not build without both pieces, I've merged
them together at this time.

The mechanical changes were performed by running the included
'fix-region' script over the whole tree:

$ git ls-files | grep -v '^fix-' | xargs ./fix-region

And then, the white space errors in the resulting patch were fixed
using the provided fix-patch-whitespace script.

$ sh ./fix-patch-whitespace

Thanks to Jamey Sharp for the mighty fine sed-generating sed script.

The hand-done changes involve removing functions from dix/region.c
that duplicate inline functions in include/regionstr.h, along with
their declarations in regionstr.h, mi.h and mispans.h.

Reviewed-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-05 18:59:00 -07:00
Jamey Sharp
a83cff9f4d Move each screen's x/y origin into ScreenRec.
Many references to the dixScreenOrigins array already had the
corresponding screen pointer handy, which meant they usually looked like
"dixScreenOrigins[pScreen->myNum]". Adding a field to ScreenRec instead
of keeping this information in a parallel array simplifies those
expressions, and eliminates a MAXSCREENS-sized array.

Since dix declared the dixScreenOrigins array, I figure allocating a
screen private for these values is overkill.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com> (i686 GNU/Linux)
2010-06-03 14:03:23 -07:00
Jamey Sharp
e7fae9ecc4 Move each screen's root-window pointer into ScreenRec.
Many references to the WindowTable array already had the corresponding
screen pointer handy, which meant they usually looked like
"WindowTable[pScreen->myNum]". Adding a field to ScreenRec instead of
keeping this information in a parallel array simplifies those
expressions, and eliminates a MAXSCREENS-sized array.

Since dix uses this data, a screen private entry isn't appropriate.

xf86-video-dummy currently uses WindowTable, so it needs to be updated
to reflect this change.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com> (i686 GNU/Linux)
2010-06-03 14:03:23 -07:00
Jamey Sharp
d1bad1b59f dmx: Fix XSetExtensionErrorHandler calls to agree on constness.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2010-06-03 14:03:22 -07:00
Jamey Sharp
cd0ef0b6a2 dmx: Delete unused ChangeKeyboardDevice/ChangePointerDevice.
Daniel Stone deleted the API for these in 2006, in commit
96e32805d1.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-26 11:42:40 -07:00
Jamey Sharp
c97a3ade5a dmx: Delete unused local variables.
Signed-off-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-26 11:16:51 -07:00
Mikhail Gusarov
3f3ff971ec Replace X-allocation functions with their C89 counterparts
The only remaining X-functions used in server are XNF*, the rest is converted to
plain alloc/calloc/realloc/free/strdup.

X* functions are still exported from server and x* macros are still defined in
header file, so both ABI and API are not affected by this change.

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13 00:22:37 +07:00
Lee Leahu
664a8e37fd dmx: when setting up device axis, use the correct counter number
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-20 13:32:19 +10:00
Peter Hutterer
010d5e2865 dmx: remove doxygen-generated files.
These can be recreated by simply running 'doxygen doxygen.conf' in
hw/dmx/doc. Some of the files do not exist anymore, these have been removed.
Some other files have a different naming scheme.
Doxygen warnings about missing links fixed, two warnings remain:

/home/whot/xorg/xserver/hw/dmx/dmxwindow.c:142: Warning: explicit link
request to 'dmxConfigureRootWindow' could not be resolved
/home/whot/xorg/xserver/hw/dmx/dmxwindow.c:119: Warning: explicit link
request to 'dmxConfigureScreenWindow()' could not be resolved

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-10-20 13:32:16 +10:00
Peter Hutterer
e7c2598f56 dmx: core events are always in screen coordinates when passed to GPE.
This fixes input in dmx, the pointer appears at the right positions to the
clients now.

Also mark the spot where we pass in the button state as valuator to GPE
with a FIXME. (??)

Tested-by: Kevin Martin
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-26 12:25:19 +10:00
Peter Hutterer
72607960c1 dmx: Remove some dead code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:17 +10:00
Peter Hutterer
88187ad889 dmx: purge DMX EQ leftovers
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:17 +10:00
Peter Hutterer
f3aaa46f27 dmx: formatting fix to improve readability
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:17 +10:00
Peter Hutterer
2d46678762 dmx: remove dmx-internal event queue.
The EQ is in the DIX now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:16 +10:00
Peter Hutterer
545f11139d dmx: compiler warning fix (mixed declarations + code)
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:16 +10:00
Peter Hutterer
7d703af74c dmx: get the state from XKB for dmxCheckSpecialKeys
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:16 +10:00
Peter Hutterer
6e52f92331 dmx: fix dmxKeySymToKeyCode to work with mandatory XKB.
Approach taken is inefficient, it converts the xkb symbol table to a core
symbol table first and then extracts the keycode from there.
Consider this a todo for a rainy afternoon when the beer fridge demands
emptying.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:16 +10:00
Peter Hutterer
61ae0a5ca5 dmx: fix up dmxKeyCodeToKeySym for XKB-only.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:15 +10:00
Peter Hutterer
9caba3e2ab dmx: fix two calls to InitKeyboardDeviceStruct.
Takes RMLVO now instead of the keysyms directly.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:15 +10:00
Peter Hutterer
29b9a10dad dmx: XkbComponentNamesRec doesn't have a keymap field anymore.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:15 +10:00
Peter Hutterer
a6f3f6a63a dmx: switch lnx-input and usb-input over to xkb-only.
kbd*Convert are nearly identical, it just asks for merging. Not today
though.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:15 +10:00
Peter Hutterer
5d81aee5f7 dmx: include xkbsrv.h to silence compiler.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-13 10:30:15 +10:00
Peter Hutterer
6a500fdd4d dmx: include exglobals.h for DeviceKeyPress and friends.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-05 08:02:17 +10:00
Peter Hutterer
591c2f8758 dmx: typecast to InternalEvent* before mieqEnqueue.
Silences a few compiler warnings.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-05 08:01:55 +10:00
Peter Hutterer
15b425b5a6 dmx: move 'state' around to silence compiler warning.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-05 08:01:45 +10:00
Peter Hutterer
9ffc3f280b dmx: don't call InitKbdFeedbackClassDeviceStruct - doesn't exist anymore.
InitKeyboardDeviceStruct does the same task now.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-05 08:01:28 +10:00
Peter Hutterer
63155cf985 dmx: pass button/axis labels into the init functions (currently unset)
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>
2009-08-05 08:00:08 +10:00
Peter Hutterer
af85973a0a dmx: remove now-useless defines.
XI is mandatory so we can expect both to be defined.
2009-08-05 07:59:45 +10:00
Peter Hutterer
654d7a0260 Revert "dmx: claim we support XI 2."
XQueryInputVersion doesn't exist anymore and for now XI 1 support is good
enough.

This reverts commit 8da8a0fec4.
2009-08-05 07:59:39 +10:00
Peter Hutterer
e7c950c627 dmx: fix a call to XkbSetRulesDflts, takes XkbRMLVOSet now. 2009-08-05 07:59:33 +10:00
Peter Hutterer
2cde9208ff dmx: Enable/DisableDevice take a boolean variable now.
We want to send events here, so pass in TRUE.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-08-05 07:59:16 +10:00
Tomas Carnecky
57bed76e21 Remove dead EXTENSION_PROC_ARGS define
Signed-off-by: Tomas Carnecky <tom@dbservice.com>
2009-03-04 10:29:34 -05:00
Daniel Stone
32db27a7f8 Input: Remove modifierMap from core
We already have modmap (in the exact same format!) in XKB, so just use
that all the time, instead of duplicating the information.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22 15:08:55 +11:00