Commit Graph

174 Commits

Author SHA1 Message Date
Peter Hutterer 95b466e457 Xi: don't include .c files. 2008-08-22 21:38:01 +09:30
Peter Hutterer c696da75c7 Xi: swap devices property replies. 2008-08-22 21:38:01 +09:30
Peter Hutterer de1573172a Backport device properties to XI 1.5 instead of XI 2.0 2008-08-15 14:52:13 +09:30
Peter Hutterer 5bcc45e07e Xi: expose Enable/DisableDevice through XI_PROP_ENABLED property. 2008-07-13 20:54:33 +09:30
Peter Hutterer 2039c6ea43 Xi: add support for input device properties.
Basically just copied from randr properties, with minor changes only.
Each device supports arbitrary properties that can be modified by clients.
Modifications to the properties are passed to the driver (if applicable) and
can then affect the configuration of the device.

Note that device properties are limited to a specific device. A property set
on a slave device does not migrate to the master.
2008-07-10 16:28:34 +09:30
Peter Hutterer 4ab01fe5db Revert "Xi: add support for input device properties."
Note to self: don't mix up branches with half-finished cherrypicks.

This reverts commit 666838fcc8.
2008-07-10 16:27:36 +09:30
Peter Hutterer 666838fcc8 Xi: add support for input device properties.
Basically just copied from randr properties, with minor changes only.
Each device supports arbitrary properties that can be modified by clients.
Modifications to the properties are passed to the driver (if applicable) and
can then affect the configuration of the device.

Note that device properties are limited to a specific device. A property set
on a slave device does not migrate to the master.
2008-07-10 16:02:55 +09:30
Peter Hutterer 59b8d29b3a Xi: Fix up ProcIVector, got out of sync with the protocol.
When the opcode squash happened in the protocol, the processing vector got out
of sync for a few requests. As a result, client and server would interpret
requests differently, leading to a couple of BadLength problems.
2008-05-13 11:17:02 +09:30
Peter Hutterer 18b33dd4ff Xi: stop excessive use of _X_EXPORT. 2008-04-29 15:24:55 +09:30
Peter Hutterer 8208b842b7 Xi: add IEventBase global variable. Stores event base for X Input events. 2008-04-29 14:19:42 +09:30
Peter Hutterer b304b0a65c Xi: add versioning support.
Remember the version the client sent to us, so we can adjust our replies
accordingly. This requires the client to use the {major|minor}Version fields
in the GetExtensionVersion request. However, they were padding before, so we
must assume they are garbage if nbytes is non-zero. If nbytes is zero, the
client is probably a new client and we can handle it correctly.
2008-04-26 17:47:15 +09:30
Peter Hutterer 6015b7a812 Xi: handle requests through a dispatch handler.
Same principle as e.g. in the RandR extension, rather than having a load of
    if (type == XI_whatever)
use an array of function pointers.
2008-04-25 14:28:45 +09:30
Peter Hutterer cb8cb87bc6 Xi: remove unused #define DISPATCH 2008-04-25 14:28:25 +09:30
Peter Hutterer d61f481a44 Xi: remove GetPairedPointer handling.
obsolete, ListInputDevices provides this information now.
2008-02-25 17:52:45 +10:30
Peter Hutterer b885588756 Xi: remove FakeDeviceData calls. And one leftover from GrabAccessControl.
FakeDeviceData needs more thoughtful integration.
2008-02-14 09:47:31 +10:30
Peter Hutterer c99a9a9729 Xi: remove raw device events.
Need to be better refined.
2008-02-14 09:43:49 +10:30
Peter Hutterer b35a9efa16 Xi: Remove files for GrabAccessControl. 2008-02-14 09:42:37 +10:30
Peter Hutterer 8da83836b6 Merge branch 'master' into mpx
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
2008-01-03 17:04:54 +10:30
Peter Hutterer f44d7dcb5f dix: change the filters to be per-device.
If we have one global filter, one pointer may change the filter value and
affect another pointer.

Reproduceable effect:
blackbox and xterm, start dragging xterm then click anywhere with the other
pointer (attached to different masterd device!).  The button release resets
the filter[Motion_Filter(button)] value, thus stopping dragging and no event
is sent to the client anymore.
Having the filters set per device gets around this.
2007-12-04 19:07:46 +10:30
Eamon Walsh 17b0c729b5 registry: Remove registry code from XInput extension.
Moving all the names into dix/registry.c
2007-11-20 18:46:43 -05:00
Peter Hutterer 75e5e9f88c Xi: add missing XI_DeviceClassesChangedMask to XI filters array. 2007-11-18 15:12:50 +10:30
Peter Hutterer 0bdfeb55fc Xi: remove RegisterPairingClient handling. Deprecated with device hierarchy. 2007-11-13 17:31:20 +10:30
Peter Hutterer e96d926d64 Xi: remove trailing whitespaces. 2007-11-13 17:14:35 +10:30
Peter Hutterer 7a81bafc9b Xi, dix: Add ability to change MD classes + send event when doing so.
Each time a different slave device sends through a master, an
DeviceClassesChangedEvent is enqueued. When this event is processed, all
classes of the matching master device are changed, and the event is sent to
the clients.

Next time the master is queried, it thus shows the evclasses of the last slave
device. The original classes are stored in the devPrivates.

TODO: if all slave devices are removed, the master's original classes need to
be restored.
2007-11-09 23:10:24 +10:30
Peter Hutterer 676b26ca3e Xi: notify the clients when the device hierarchy has been changed. 2007-11-09 14:31:54 +10:30
Peter Hutterer 184a7b8917 Merge branch 'mpx' into mdsd
Conflicts:

	Xi/opendev.c
2007-11-08 09:34:35 +10:30
Peter Hutterer 0b729051c0 Merge branch 'master' into mpx
Conflicts:

	Xi/extinit.c
	Xi/grabdev.c
	Xi/setmode.c
	Xi/ungrdev.c
	dix/devices.c
	dix/events.c
	dix/getevents.c
	include/dix.h
	mi/midispcur.c
	mi/misprite.c
	xkb/xkbActions.c
	xkb/xkbEvents.c
	xkb/xkbPrKeyEv.c
2007-11-07 15:37:23 +10:30
Peter Hutterer 155e2c559e Xi: advertise as XInput v2 capable 2007-10-19 14:37:07 +09:30
Peter Hutterer 5ba738935f Xi: remove ChangePointerKeyboardPairing in favour of ChangeDeviceHierarchy. 2007-10-19 14:36:37 +09:30
Eamon Walsh 5277a6ff58 registry: Register Input extension protocol names. 2007-10-15 14:14:37 -04:00
Eamon Walsh 5c03d13181 xace: add new hooks + access controls: XInput extension.
Introduces new dix API to lookup a device, dixLookupDevice(), which
replaces LookupDeviceIntRec and LookupDevice.
2007-09-28 08:02:00 -04:00
Eamon Walsh 3b114f2603 Input: Properly swap DevicePresenceNotify events. 2007-09-26 07:26:59 -04:00
Eamon Walsh 31a7994ac7 Input: Return errors to the dispatcher instead of sending them ourself.
Also fixed two "unused variable: stuff" warnings.
2007-09-26 07:26:59 -04:00
Peter Hutterer 55fd50273e Xi: unify ErrorFs. Prefix all with [Xi]. 2007-09-26 15:15:34 +09:30
Peter Hutterer 03680a384a dix: don't change the device struct while processing core events.
The device state needs to be changed while processing the XI event. Core
events are always processed after XI, so by then the device is already set up
properly. However, we now rely on DeviceButtonMotionMask to be equal to
ButtonMotionMask. It already is, but stick a big fat warning in so nobody
attempts to change it.

This commit disables XKB for the VCK, thus essentially for all devices.
Temporarily anyway.
2007-09-06 15:43:47 +09:30
Peter Hutterer c1a16bdcfe Add 'evfill' field to GEExtensions.
We need this to allow extensions to fill in extra data for an event before it
is sent to the client. This is probably to be used like
FillUpEventsFromWindow().
2007-07-01 09:14:18 +09:30
Peter Hutterer 333bab4b23 Clean up, correct some comments.
Send event type down with the RawEvents.
2007-05-17 17:59:02 +09:30
Peter Hutterer 4dc973f08c Add ExtendedGrabDevice handling.
Add XGE handling in DeliverGrabbedEvent.

We can now grab something selecting XGE events, but the current code is a
bit messy and doesn't work too well yet.
2007-05-14 10:42:03 +09:30
Peter Hutterer c03d9a7217 Cleaning up a bit.
Register correct event in EventSwapVector.
Fix up event swap for GE events, register XI's swap function at GE.
2007-05-02 18:16:40 +09:30
Peter Hutterer e6fd4a24eb Add handling for FakeDeviceEvent request.
Fix a stupid bug from last commit, mask names were wrong.
2007-05-02 17:49:20 +09:30
Peter Hutterer 58c0fd2927 Adjust EQ to support long events.
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-02 13:50:09 +09:30
Peter Hutterer 8b42ba64e1 Send PointerKeyboardPairingChangedNotifyEvent using XGE.
Needs updated inputproto and libXi.
2007-05-01 12:12:58 +09:30
Peter Hutterer e8777a91f3 Merge branch 'master' into mpx
Conflicts:

	Xi/closedev.c
	Xi/exevents.c
	Xi/extinit.c
	Xi/listdev.c
	dix/window.c
	hw/xfree86/common/xf86Xinput.c
	include/extinit.h
	mi/mipointer.c
2007-04-02 15:36:26 +09:30
Peter Hutterer 63d8f01819 dix: Fix wrong cursor refcount.
Calloc cursor struct to ensure devPrivates are zeroed out and don't
        increase the refcnt for devices automatically when allocating a new
        cursor. Use new DeviceIsPointerType() to detect if device is a pointer
        _before_ device has been activated and can thus be identified and set
        up grab functions accordingly. This way we can increase the refcnt
        when we get a pointer grab.
2007-03-30 14:59:43 +09:30
Peter Hutterer 307d2b57bb Xi: remove 'register' keywords. 2007-03-29 15:23:41 +09:30
Adam Jackson e88fa75c9b Static cleanup on Xi/ 2007-03-25 21:18:39 -04:00
Adam Jackson 9a0f25de7c Static cleanups, dead code deletion. 2007-03-25 12:27:01 -04:00
Peter Hutterer f8cd19bd16 Xi: add GetClientPointer and GetPointerPairing requests.
dix:    use PickKeyboard for ProcSetInputFocus and ProcGetInputFocus instead
        of the core keyboard.
2007-03-22 17:47:01 +10:30
Peter Hutterer 65b0eb60b0 Xi: move IsPointerDevice into dix.
dix:    IsPointerDevice and IsKeyboardDevice, use same ways to identify type
        of device as XI does for the XListInputDevices reply.
        Autopair each non-pointer device with VCP when activating, pair with
        real device after activation.
        Don't return non-keyboard devices when calling GetPairedKeyboard or
        PickKeyboard, otherwise we segfault for 'evdev brain'.
2007-03-16 15:52:24 +10:30
Peter Hutterer 07806f4081 Xi: Add SetClientPointer request handling. 2007-03-09 15:45:25 +10:30
Peter Hutterer 4b8b0e377a Xi: Add access control request handling.
dix:	New file access.c to handle all access control for devices.
2007-02-22 20:00:59 +10:30
Peter Hutterer cd0af7a785 Xi, dix: Only one client at a time can change the pointer-keyboard pairing,
using xRegisterPairingClient request.
2007-02-21 10:08:41 +10:30
Peter Hutterer 4aaaa70d1b Xi: Adding ChangePointerKeyboardPairing request
Adding PointerKeyboardPairingChanged event
	Correct error values for XWarpDevicePointer

dix:	Adding device argument to SendMappingNotify
	Adding spriteOwner flag to devices
2007-01-29 18:23:24 +10:30
Peter Hutterer ea82333dc1 Xi: add missing call for SProcXChangeDeviceCursor
add DeviceEnterNotify and DeviceLeaveNotify
	fix: QueryDevicePointer crashed if called with keyboard device
2007-01-10 14:52:13 +10:30
Peter Hutterer 95e1a88050 Xi: Adding ChangeDeviceCursor request 2007-01-08 12:31:18 +10:30
Peter Hutterer b55e1239ac xfree86: fix xf86ActivateDevice(): only set to MP device if not a keyboard 2006-12-20 14:43:38 +10:30
Peter Hutterer 202b46eb6b xfree86: Changing "IsMPDevice" to "SharedPointer" option. Devices will default
to MP devices.

Xi:	Adding QueryDevicePointer request/reply
	Adding WarpDevicePointer request/reply
2006-12-20 13:05:53 +10:30
Daniel Stone 96e32805d1 Xi: disallow changing core keyboard and pointer
Just short-circuit the change core keyboard/pointer requests.
2006-10-29 03:43:34 +03:00
Daniel Stone eae6594d03 Xi: swap control in DevicePresenceNotify 2006-10-22 16:39:44 +03:00
Kristian Høgsberg c7577f9b88 Xi: add DevicePresenceNotify
Add support for DevicePresenceNotify events.
2006-07-21 15:19:52 -04:00
Daniel Stone 710bb2e6c8 Reindent with -cbi0. 2006-03-31 14:52:57 +00:00
Adam Jackson 6d7083bd69 indent fixes (OMG SO UGLY), and nuke old RCS keywords. 2006-02-20 22:16:49 +00:00
Adam Jackson 5480c537ce ANSIfy Xi/. Mostly automated via protoize(1). 2006-02-20 21:50:49 +00:00
Adam Jackson f105b8da11 Mark everything in dixsym.c as _X_EXPORT. 2006-02-15 20:44:13 +00:00
Daniel Stone e03198972c Add Xtrans definitions (FONT_t, TRANS_CLIENT) to clean up warnings.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
    source files in the xserver/xorg tree, predicated on defines of
    HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
    <X11/fonts/foo.h>.
2005-07-03 07:02:09 +00:00
Daniel Stone 292c4cff26 Fix includes right throughout the Xserver tree:
change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
change "foo.h", "extensions/foo.h" and "X11/foo.h" to
    <X11/extensions/foo.h> for extension headers, e.g. Xv.h;
change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
2005-04-20 12:25:48 +00:00
Egbert Eich 0664db19bf Merging XORG-CURRENT into trunk 2004-04-23 18:54:16 +00:00
Egbert Eich dae90c3af9 Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004 2004-03-14 08:34:49 +00:00
Egbert Eich 867451f1ab Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004 2004-03-03 12:12:50 +00:00
Egbert Eich df0313d35b readding XFree86's cvs IDs 2004-02-26 13:36:15 +00:00
Egbert Eich 147aae87fd Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004 2004-02-26 09:23:53 +00:00
Kaleb Keithley adc7f9a4eb XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks 2003-11-25 19:29:01 +00:00
Kaleb Keithley d568221710 XFree86 4.3.0.1 2003-11-14 16:49:22 +00:00
Kaleb Keithley ded6147bfb R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00