summaryrefslogtreecommitdiff
path: root/include/input.h
AgeCommit message (Collapse)AuthorFilesLines
2008-07-28dix: rename classic accel _scheme_ to lightweight to avoid confusion withSimon Thum1-1/+1
classic accel _profile_ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2008-07-13Add support for multiple pointer acceleration schemes. #8583Simon Thum1-0/+21
Available acceleration schemes: - xorg classic scheme. - the new "Predictable" polynomial accel scheme. X.Org Bug 8583 <http://bugs.freedesktop.org/show_bug.cgi?id=8583> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2008-06-11CopyGetMasterEvent() can be static.Tiago Vignatti1-5/+0
2008-05-26If core motion history is required, scale back to screen coords and INT16.Peter Hutterer1-1/+2
2008-05-26Ensure the motion history is merged for master devices.Peter Hutterer1-1/+1
Add each event to the master's MH as well as to the SDs. In the MD, store min/max and the actual value. When retrieving the MH, rescale all coordinates to the current coordinate range and only post those valuators that are currently active on the device.
2008-05-25Remove GetMotionProc from ValuatorClassRec.Peter Hutterer1-9/+0
With the MD/SD device hierarchy we need control over the generation of the motion history as well as the conversion later before posting it to the client. So let's not let the drivers change it. No x.org driver currently uses it anyway, linuxwacom doesn't either so dumping it seems safe enough.
2008-05-23input: instead of lastx/y, use a last.valuators[] array on the device.Peter Hutterer1-0/+2
During GetPointerEvents (and others), we need to access the last coordinates posted for this device from the driver (not as posted to the client!). Lastx/y is ok if we only have two axes, but with more complex devices we also need to transition between all other axes. ABI break, recompile your input drivers.
2008-05-14dix: InitAndStartDevices doesn't need a window parameter.Peter Hutterer1-3/+1
Leftover from the old pointer-keyboard pairing code, obsolete and gone now.
2008-04-30input: replace -1 as default axis limit with NO_AXIS_LIMIT define.Peter Hutterer1-0/+2
This allows easier refacturing of the coordinate limit handling. Grepping for -1 is boring.
2008-04-29include: add declaration for CopyGetMasterEvent to shut up compiler warning.Peter Hutterer1-0/+6
2008-04-10dix: Rework Enter/Leave semaphore system.Peter Hutterer1-0/+35
Instead of a simple counter, use bits to keep track of which device is where etc. When device enters a window (or sets focus), the bit matching the device is set, when it leaves again, it is unset. If there are 0 bits set, then Leave/Enter/Focus events may be sent to the client. Same theory as before, but this should get around the insanity with Grab/Ungrab special cases. Those cases are basically untested though.
2008-02-19dix: change GetEventList to return length of list and set parameter in place.Peter Hutterer1-1/+1
Changing DDXs to use new prototype too.
2008-02-19dix: add InputEventListLen and SetMinimumEventSizePeter Hutterer1-0/+4
The latter is used to increase the amount of allocated memory for the event list. This will be needed for ClassesChangedEvents that can be of more or less arbitrary size (larger than 32 anyway).
2008-02-18Move input event list initialisation and storage from DDX to DIX.Peter Hutterer1-0/+3
Rather than letting the DDX allocate the events, allocate them once in the DIX and just pass it around when needed. DDX should call GetEventList() to obtain this list and then pass it into Get{Pointer|Keyboard}Events.
2008-01-21Xi: add XACE hooks for device creation (ChangeDeviceHierarchy)Peter Hutterer1-1/+3
AddInputDevice checks for permissions already, so all we do is modify a few callers to let AID sort it out.
2008-01-18include: mark CoreProcessPointerEvent, CoreProcessKeyboardEvent as deprecated.Peter Hutterer1-3/+3
ProcessOtherEvent does all the work now.
2008-01-03Merge branch 'master' into mpxPeter Hutterer1-13/+5
Conflicts: XTrap/xtrapddmi.c Xext/security.c Xext/xprint.c Xext/xtest.c Xext/xvdisp.c Xi/exevents.c Xi/grabdevb.c Xi/grabdevk.c Xi/opendev.c Xi/ungrdev.c Xi/ungrdevb.c Xi/ungrdevk.c dix/cursor.c dix/devices.c dix/dixutils.c dix/events.c dix/getevents.c dix/main.c dix/window.c hw/xfree86/ramdac/xf86Cursor.c include/dix.h include/input.h include/inputstr.h mi/midispcur.c mi/miinitext.c mi/misprite.c render/animcur.c xfixes/cursor.c xkb/xkbAccessX.c
2007-12-03dix: Remove RegisterPairingClient and UnregisterPairingClient.Peter Hutterer1-1/+0
2007-11-15dix: Add FreeDeviceClass and FreeFeedbackClass for centralised xfree.Peter Hutterer1-0/+4
Ensures that we only have one way of freeing a device class to avoid leaks in ChangeMasterDeviceClasses and other places.
2007-11-15Xi: When switching MD classes, make a deep copy instead of pointer flip.Peter Hutterer1-1/+2
Turns out it's really really hard synchronising device state across multiple duplicated events if they all share the same struct. So instead of doing so, when the SD changes deep-copy all it's classes into the MD. The MD then has the same capabilities, but the state can be set separately. This should fix xkb, key state, repeat etc. problems. Updating the device state allows us to remove the SwitchCoreKeyboard from the event gathering, it's all done during event processing now.
2007-11-12dix: When the last slave is removed, set master to the original classes.Peter Hutterer1-0/+3
DeviceClassesChangedEvent is sent to the client, where device == new slave.
2007-10-16dix: add AllocMasterDevice for creation of new master devices.Peter Hutterer1-0/+4
Devices are initiated pretty much the same as the core devices.
2007-10-16include: remove unused GetPairedPointer/Keyboard declarations.Peter Hutterer1-2/+1
2007-10-16dix: fix up Activate/Enable/Disable device.Peter Hutterer1-0/+1
Set isMaster for VCP/VCK. Init sprites for master pointer devices. Pair master kbds with master pointers (1:1 pairing!). Attach other devices to VCP/VCK.
2007-10-16dix: add AttachDevice, needed to attach a slave device to a master device.Peter Hutterer1-0/+3
For now, we don't allow attaching slaves to other slaves, and we don't allow pairing slaves with other slaves. Pairing is for master keyboard->master pointer only. Attaching is for slave device->master device only.
2007-09-28xace: add hooks + new access codes: XKB extension.Eamon Walsh1-4/+0
Removes "LookupKeyboardDevice" and "LookupPointerDevice" in favor of inputInfo.keyboard and inputInfo.pointer, respectively; all use cases are non-XI compliant anyway.
2007-09-28xace: add new hooks + access controls: XInput extension.Eamon Walsh1-5/+5
Introduces new dix API to lookup a device, dixLookupDevice(), which replaces LookupDeviceIntRec and LookupDevice.
2007-08-28devPrivates rework: since API is already broken, switch everythingEamon Walsh1-3/+0
over to new system. Need to update documentation and address some remaining vestiges of old system such as CursorRec structure, fb "offman" structure, and FontRec privates.
2007-08-23dix: Only check device events for possible ACLs.Peter Hutterer1-1/+2
We shouldn't be able to restrict events like Expose, etc. with device based ACLs. So we just ignore all non-input events when checking for permissions.
2007-05-02Adjust EQ to support long events.Peter Hutterer1-4/+16
Add RawDeviceEvent (pointers only for now). This commit changes the event queue to use EventLists instead of xEvent arrays. Only EQ is affected, event delivery still uses xEvent* (look for comment in mieqProcessInputEvent). RawDeviceEvents deliver driver information to the client, without clipping or acceleration.
2007-05-01Start devices after windows are initialized.Peter Hutterer1-1/+3
This fixes the hotplug segfault introduced with the multihead changes and cleans up the code a bit as well.
2007-04-17Merge branch 'master' into XACE-SELINUXEamon Walsh1-1/+4
Conflicts: dix/privates.c
2007-04-12Merge branch 'master' into mpxPeter Hutterer1-1/+4
Conflicts: configure.ac dix/events.c hw/xfree86/common/xf86Xinput.c
2007-04-11Input: Allow a pointer to a device to be returned in NIDRRemigiusz Marcinkiewicz1-1/+2
Allow a pointer to the first device added to be returned, so we know which device(s) were added by the NIDR call.
2007-04-10Input: Add DeleteInputDeviceRequestMagnus Vigerlöf1-0/+2
Add DIDR, which asks the DDX to remove a device, analogous to NewInputDeviceRequest. Only implemented for XFree86 at the moment.
2007-04-09Alloc sprite memory in devices' devPrivates, allow undisplaying cursors.Peter Hutterer1-0/+2
Improve memory usage by allocating the sprite's memory only to devices that actually have a sprite and provide means to remove a device's cursor from the screen (more hotplugging, yay!). This commit breaks ScreenRec's ABI.
2007-03-13dix: Get the state from the paired device and the real device to fill thePeter Hutterer1-0/+1
state field in the event, rather than using the virtual devices. ProcessPointerEvent: name argument "device" instead of "other". Add GetPairedKeyboard().
2007-03-08dix: Each device needs to differ between a core grab and an XI grab,Peter Hutterer1-1/+1
otherwise a Xi grab may overwrite or release a core grab. Replace grab and associates with coreGrab and deviceGrab structures, adjust rest of dix/Xi/etc to compile. xfree86: Don't check for core devices, we'll have the virtual ones anyway. If we check, the first mouse device is duplicated and sends double events.
2007-03-07devPrivates rework: move reset functions into a single call.Eamon Walsh1-1/+0
2007-03-07Xi: Don't deactivate core grabs from non-core button/key releases.Peter Hutterer1-0/+2
dix: set coreGrab flag for grabs caused by GrabPointer and button presses. remove virtual core devices from device list, only real devices are in the list now. Auto-pair each keyboard with a real pointer if one is available, provides multiple keyboards automatically after startup if devices are configured. fix GuessFreePointerDevice() to do what it's supposed to do. mi: fix: call miPointerMove from miPointerWarpCursor. fix: remove unused id field from miCursorInfoRec don't update sprite for virtual core pointer.
2007-03-02dix: Add ClientPointer to client, used for picking which pointer to use inPeter Hutterer1-0/+2
ambiguious request. PickPointer and PickKeyboard are used for getting the appropriate pointer when situation is unclear. Fix some issues with InitializeSprite. dix, xfree86: Remove last traces of InitSprite.
2007-02-22Xi: Add access control request handling.Peter Hutterer1-7/+31
dix: New file access.c to handle all access control for devices.
2007-02-21Xi, dix: Only one client at a time can change the pointer-keyboard pairing,Peter Hutterer1-0/+7
using xRegisterPairingClient request.
2007-02-14dix: Clean up GetPointerEvents. If pDev == inputInfo.pointer, assume thatPeter Hutterer1-1/+0
we do not want Xi events. mi: Remove POINTER_CORE_ONLY flag.
2007-02-05dix: If POINTER_CORE_ONLY is set, GetPointerEvents() only creates a core ↵Peter Hutterer1-0/+1
event mi: fix: Create motion event in miPointerMoved
2007-01-29Xi: Adding ChangePointerKeyboardPairing requestPeter Hutterer1-0/+1
Adding PointerKeyboardPairingChanged event Correct error values for XWarpDevicePointer dix: Adding device argument to SendMappingNotify Adding spriteOwner flag to devices
2006-12-27dix/events: take screen number, not pointer, in PostSyntheticMotionPeter Hutterer1-1/+1
Since we were using PostSyntheticMotion incorrectly anyway, update the declared API to match.
2006-12-19Merge branch 'master' of git://anongit.freedesktop.org/git/xorg/xserverPeter Hutterer1-1/+1
2006-12-11dix: Moving SpriteRec into DeviceIntRecPeter Hutterer1-3/+1
removing global sprite structure beginning to remove MPX ifdefs xnest: Fix to make xnest compile again
2006-12-05Merge branch 'master' of git://anongit.freedesktop.org/git/xorg/xserver into mpxPeter Hutterer1-1/+1
Conflicts: dix/events.c