summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)AuthorFilesLines
2009-06-23Xi: check for Use permission on the device in SetClientPointer().Eamon Walsh1-1/+1
Presumably, some intelligent, XI2-aware management app will be calling XISetClientPointer on behalf of other clients; this check makes sure the target client has permission on the device. Requires changing the prototype to return status code instead of Bool. Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov> Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-24xorg-server.h.in: Export the X Access Control Extension (XACE), too.Oliver McFadden1-0/+3
Acked-by: Daniel Stone <daniel@fooishbar.org>
2009-06-18input: unify button numbers on master devices.Peter Hutterer1-0/+2
Master devices provide the union of all attached slave devices' buttons, i.e. the number of buttons on the master device is always the number of buttons of the slave device with the highest number of buttons. When slaves are attached or detached, the master device adjusts the button number to reflect the new buttons. On a slave switch, this slave's button labels are copied into the master (up to slave->num_buttons). The remaining button labels (if any) stay as they are. Thus, if any of the higher buttons is still pressed, it reflects the label of the last pressed device that provided this button. If two devices press the same button and it is differently labelled the last pressed one will be reflected in the master device. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-18input: Add labels to buttons and valuators - ABI_XINPUT_VERSION 7Peter Hutterer3-1/+8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-18input: bump to ints for deviceids - XI2 requires 16-bit deviceids.Peter Hutterer1-1/+1
Note: ABI break, but ABI_XINPUT_VERSION has NOT been bumped. Recompile input drivers. Revert "Xi: return BadImplementation for deviceids 256 and above" This reverts commit 2b459f44f3edaea137df9a28bc7adfeb1b9f1df7. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-18input: change axisVal from uint to double.Peter Hutterer1-1/+1
With subpixel support, uint just doesn't cut it. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-17Xi: Add support for sourceid in the device classes.Peter Hutterer1-0/+6
2009-06-12input: remove un-used "setter" argument from SetClientPointer.Peter Hutterer1-2/+1
It's obsolete, not likely to come back, let's drop it. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-11input: remove dependency on XI2 protocol for XI_LASTEVENT.Peter Hutterer1-2/+7
inputstr includes XI2proto.h for the sole purpose of XI_LASTEVENT. However, using XI_LASTEVENT in the server is prone to errors, if the server is recompiled against a newer version of the protocol it would bump this variable and associates bits, including potential ABI. This patch defines an XI2LASTEVENT for use in the server and removes the XI2proto.h require. XI2LASTEVENT is the current value of XI_LASTEVENT. This patch is required by components that require access to inputInfo (currently xf86-video-geode and xf86-video-cirrus) but should not have a require for the XI2 protocol. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-10input: move inputstr.h to where its needed.Dave Airlie1-1/+0
This stops inputstr.h being needed to be included by output drivers. Signed-off-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-02input: add support for XIAllDevices and XIAllMasterDevices passive grabs.Peter Hutterer1-0/+2
These grabs are suported through two fake devices inputInfo.all_devices and inputInfo.all_master_devices. These devices are not part of the device list and are only initialised for their device id, nothing else. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01dix: switch grab checking from unsigned shorts to unsigned intsPeter Hutterer1-1/+1
XIAnyModifier is outside of the unsigned short range. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-06-01input: Add grabtype to GrabParameters.Peter Hutterer1-0/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-28Merge branch 'master' into xi2Peter Hutterer5-16/+10
Conflicts: Xext/geext.c Xi/chdevcur.c Xi/extgrbdev.c Xi/xiproperty.c configure.ac dix/ptrveloc.c hw/xfree86/common/xf86Config.c mi/mipointer.h test/input.c xkb/xkb.c
2009-05-28Xi: Send Enter or Leave events with XIPassive(Un)grabNotifyPeter Hutterer1-0/+1
If a passive enter or focus in grab activates, send additional enter or focus events with mode XIPassiveGrabNotify to the grabbing client. Likewise, if the grab deactivates, send additional leave or focus out events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-27Xi: Add support for Enter and FocusIn grabs.Peter Hutterer2-0/+12
Enter grabs are checked for in CheckMotion(), each time the sprite window changes the current grab is deactivated (if applicable) and the new grab is activated (if applicable). Exception - if the grab is on a parent window of the current window since we keep the grab across descendants. Since CheckMotion() may change the grab status of a device, we mustn't get "dev->deviceGrab.grab" in ProcessOtherEvents until after CheckMotion(). FocusIn grabs are checked in much the same manner. The event delivery for grabs replaces the NotifyNormal on window change with a NotifyGrab on window change. Note that this happens before the grab activates, so the EnterNotify(NotifyGrab) is still delivered to the window, not to the grabbing client. This is in line with the core protocol semantics for NotifyGrab events. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-27Remove reference to non-existing requestLog and requestLogIndexNicolai Hähnle1-4/+0
These fields were removed in 252ec504817e05b185e4896a2d899e9c00b8aeef. Signed-off-by: Nicolai Haehnle <nhaehnle@gmail.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-22input: introduce partial class copying depending on the event.Peter Hutterer2-3/+10
Copying all classes into the master device has drawbacks for hybrid devices (devices that are both mice and keyboards). If such a device posts an event, it's key classes are moved into the VCP. The key event itself is unaffected by keyboard grabs and the like. Partial class copying copies depending on the event and copies the classes into the right master device (i.e. the VCK for key events, the VCP for pointer events). Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-22dix: introduce GetMaster()Peter Hutterer1-0/+1
For hybrid devices (keys + buttons/axes) the attached master device is generally the wrong one. One shouldn't post a button event through a keyboard and vice versa. GetMaster(dev) returns the right master device for the given type needed. This may be the MD paired with this device's MD. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-22dix: Add a deviceid to the DeviceChangedEvent.Peter Hutterer1-0/+1
ChangeDeviceId would actually overwrite the flags field if deviceid wasn't present. Aside from the event of course not telling which device generated it in the first place. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-22input: remove nested union from InternalEvent.Peter Hutterer1-6/+3
There's no need for internal events to be a struct with a single nested union, we might as well make the union itself the InternalEvent. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-22Input: rename DeviceIntRec->isMaster to ->type.Peter Hutterer2-1/+7
isMaster is not enough as long as we differ between master pointers and keyboard. With flexible device classes, the usual checks for whether a master device is a pointer (currently check for ->button, ->valuators or ->key) do not work as an SD may post an event through a master and mess this check up. Example, a device with valuators but no buttons would remove the button class from the VCP and thus result in the IsPointerDevice(inputInfo.pointer) == FALSE. This will become worse in the future when new device classes are introduced that aren't provided in the current system (e.g. a switch class). This patch replaces isMaster with "type", one of SLAVE, MASTER_POINTER and MASTER_KEYBOARD. All checks for dev->isMaster are replaced with an IsMaster(dev).
2009-05-22Split the signal-handler's lastSlave out into a separate variable.Peter Hutterer1-0/+1
dev->u.lastSlave was not signal safe since it was accessed by the DIX and during signal handling. Replaced with: 'dev->last.slave' for the signal handler's lastSlave (used to generate DeviceChangedEvents), . 'dev->u.lastSlave' for the DIX lastSlave (currently only used in change_modmap) Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-21dix: 'namespace' HAS_OLD_SLAVE and HAS_NEW_SLAVE.Peter Hutterer1-3/+3
We need more flags for this in the near future, so let's namespace them now.
2009-05-21input: rename device->type to device->xinput_type.Peter Hutterer1-1/+1
This type is only used in XI to give a hint of what type this device may be. Call it xinput_type for clarity. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-20Xi: remove DeviceIsPointerTypePeter Hutterer1-5/+0
This approach is broken anyway. DIPT only checked for the XInput type "MOUSE" and the only user of this is xf86ActivateDevice when it sets the Activate/DeactivateGrab functions. Since synaptics and wacom set their own types, evdev only sets MOUSE for, well, mice half the devices didn't have this set correctly anyway. Instead, ActivatePointerGrab should be merged together with ActivateKeyboardGrab. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-18Fix missing parentheses in FP1616 macro.Peter Hutterer1-1/+1
Missing parens led to interesting results if an expression instead of a constant was passed in (ProcXIQueryPointer for example).
2009-05-16input: reduce the number of superfluous hierarchy eventsPeter Hutterer1-4/+8
There's only two reasons for hierarchy events: - device is added, removed, etc. In this case we want to send the event as it happens. - devices are added in a XIChangeDeviceHierarchy request. In this case we only want one event cumulating all changes.
2009-05-08dix: export subpixel precision in XI2 events for root/event coordinates.Peter Hutterer1-2/+4
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-08xkb: remove _XkbAlloc, _XkbCalloc, _XkbRealloc and _XkbFreePeter Hutterer1-4/+0
We all agree that wrapping is fun, but seriously. One of these days someone will get hurt. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-08xkb: remove some now-useless XFUNCPROTOBEGINPeter Hutterer1-4/+0
We bring them back if we start rewriting the server in C++, promise. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-07dix: add 'none' pointer acceleration profile with number -1Simon Thum1-4/+3
This is a shorthand for disabling acceleration, while retaining the possiblity to use constant deceleration. If constant deceleration is also unused, it will optimize motion processing. Other possiblities to deactivate acceleration were quite hidden, and didn't always work as expected. E.g. xset m 1 1 would retain adaptive deceleration, while xset m 1 0 would not (in the default profile). Also removes the 'reserved' profile; it was unused and it's trivial to add new ones anyway. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-06Xi: add GrabButton and GrabKeysym code.Peter Hutterer1-0/+4
We don't do keycode grabs in XI2, they're pointless.
2009-05-05include: up the number of max. input devices to 40.Peter Hutterer1-1/+1
With the Xtest virtual slave devices we have 4 devices for each MD pointer/keyboard pair, plus the AllDevices and AllMasterDevices reserved deviceids. It's quite easy to hit the current limit. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-04include: up the number of max. input devices to 40.Peter Hutterer1-1/+1
With the Xtest virtual slave devices we have 4 devices for each MD pointer/keyboard pair, plus the AllDevices and AllMasterDevices reserved deviceids. It's quite easy to hit the current limit. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-01input: reshuffle CreateGrab and friends to take a GrabParameters param.Peter Hutterer2-29/+36
This is cleaning up work in preparation for XI2 passive grabs.
2009-04-28dix: remove all but main() from main.cPeter Hutterer1-0/+1
All other functions are pushed into where they seemed to fit. main.c is now linked separately into libmain.a and linked in by the various DDXs. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-28dix: remove all but main() from main.cPeter Hutterer1-0/+1
All other functions are pushed into where they seemed to fit. main.c is now linked separately into libmain.a and linked in by the various DDXs. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-28Make the cursor completely optionalSimon Farnsworth1-0/+4
For embedded use, it's convenient to be able to disable the cursor completely, without having to audit and fix up all your third-party code (e.g. Mozilla Firefox). Add -nocursor and -cursor server options to enable and disable the cursor. The default is still -cursor, but embedded users can run the server with -nocursor to hide the cursor regardless of what application developers do. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-24Add SIGIO/SIGPOLL support for SolarisAlan Coopersmith1-0/+3
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-04-24Merge branch 'master' into xi2Peter Hutterer1-2/+7
Conflicts: Xi/chdevhier.c include/input.h
2009-04-24input: propagate XTst events through virtual slave devices.Benjamin Close1-0/+4
A XTest virtual slave device pair (kbd/ptr) exists for every master device pair. This is so XTest events are correctly propogated via slave devices up to Master devices and the classes are correctly changed along the way. We add the XTest slave device pair to the Virtual Core pointer and provide a simple way of creating the devices. A XTest Slave Device is identified by the XTstDevicePrivateKey property being set in the devices devProperties XI events are still propagated through the matching device, in the hope the client knows what it is doing. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-21dix: Change AllocMaster into AllocDevicePair, allow creation of SDs too.Benjamin Close1-2/+3
Allocating a slave device is essentially the same as allocating a master device. Hence we rename AllocMaster to AllocDevicePair and provided the ability to indicate if a master or slave device pair is required. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-19Merge branch 'master' into xi2Peter Hutterer3-0/+23
2009-04-19Convert to using int32_t fixed point values on the wire.Peter Hutterer1-0/+2
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-19dix: remove un-used parameter "core" from AllowSomePeter Hutterer1-2/+1
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-19input: use a GrabMask union in GrabDevice to allow for XI2 masks.Peter Hutterer3-1/+8
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-19input: replace GrabRec's coreGrab field with grabtype.Peter Hutterer3-2/+9
Don't allow grabs of different types to override each other. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-04-19xkb: Add XkbFreeRMLVOSet helper function.Peter Hutterer1-0/+5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dan Nicholson <dbn.lists@gmail.com>
2009-04-19dix: store subpixel precision and send it down the wire to the client.Peter Hutterer1-0/+3
For the valuator data, not yet for root x/y and event x/y. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>