Commit Graph

164 Commits

Author SHA1 Message Date
David Jander d9bf52b4ab [kdrive] Fix rotation of pointer
Rotation matrix for pointer coordinates was incomplete and pointers with
absolute coordinates did not work correctly in xserver (kdrive) when the
sceen was rotated other than by 0 degrees.

Signed-off-by: David Jander <david.jander@protonic.nl>
Signed-off-by: James Cloos <cloos@jhcloos.com>
2009-04-17 01:34:18 -04:00
Adam Jackson d2690375df kdrive: s/KdSaveString/strdup/g
This isn't even funny anymore.
2009-04-03 11:08:31 -04:00
Daniel Stone 4fa3872dc2 Input: Remove core keysyms from KeyClassRec
Instead of always keeping two copies of the keymap, only generate the
core keymap from the XKB keymap when we really need to, and use the XKB
keymap as the canonical keymap.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22 15:08:59 +11: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
Daniel Stone 6727ee9408 Input: Remove state from KeyClassRec
We already have state fully stored within XKB, so instead of duplicating it,
just generate the values to send to clients when required.

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
Daniel Stone 08363c5830 Input: Overhaul keyboard initialisation process
XkbInitKeyboardDeviceStruct is now the only valid keyboard
initialisation: all the details are hidden behind here.  This now makes
it impossible to supply a core keymap at startup.

If dev->key is valid, dev->key->xkbInfo->desc is also valid.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22 15:08:51 +11:00
Daniel Stone 40877c6680 XKB: Make XKB mandatory
No more #ifdef XKB, because you can't disable the build, and no more
noXkbExtension either.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-01-22 15:06:25 +11:00
Adam Jackson 3eb52de7f2 kdrive: Hardcode a different wrong value for number of mouse buttons
This should really come from the input driver directly, but, kdrive.
2008-10-14 09:46:04 -04:00
Peter Hutterer 18cdd733ad kdrive: fix dixflags so they're always defined before enqueuing events #17734
If absolute events were posted, dixflags got set conditionally on whether the
valuators are different from the last posted set of values.
If dixflags are undefined however, the DIX interprets them as relative
valuators. Fix this by making sure defining dixflags is always defined.

X.Org Bug 17724 <http://bugs.freedesktop.org/show_bug.cgi?id=17734>
2008-10-10 16:58:08 +10:30
Adam Jackson 42e7b64bf9 -retro enables zapping 2008-10-07 20:32:02 -04:00
Daniel Stone 9d135ac10a Input: Make DontZap the default
If you need to bail out the server, use Ctrl-Alt-Fx, or enable zapping
if it bothers you that much.  If Ctrl-Alt-Fx is broken, nag me until
it's permanently fixed.
2008-10-08 02:30:05 +03:00
Adam Jackson 0b7b89fbac xalloc+bzero -> xcalloc 2008-10-06 14:19:30 -04:00
Peter Hutterer 2bbb12c355 Xi: remove ChangeDeviceControl for CoreCtl.
If you want to set a device to core, attach it to a master device.
2008-07-13 20:54:33 +09:30
Peter Hutterer 656d5d9885 kdrive: fix wrong use of &, should be | instead.
Fallout from 26e7e69ab8
2008-06-11 17:32:59 +09:30
Peter Hutterer 26e7e69ab8 kdrive: don't post motion event if there was no motion. #16179
Based on the patch by Tomas Janousek.

X.Org Bug 16179 <http://bugs.freedesktop.org/show_bug.cgi?id=16179>
2008-06-02 11:11:37 +09:30
Peter Hutterer f79ad5674e kdrive: fix up callers to KdQueueEvent, need to pass xEvent, not EventListPtr 2008-05-31 18:46:35 +09:30
Peter Hutterer 0877de13ac Remove GetMotionProc from ValuatorClassRec.
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-25 22:49:54 +09:30
Peter Hutterer 8190ef8754 Merge branch 'master' into mpx
Conflicts:

	Xext/EVI.c
	Xext/appgroup.c
	Xext/cup.c
	Xext/mitmisc.c
	Xext/sampleEVI.c
	dix/window.c
2008-04-22 18:04:05 +09:30
Eric Anholt a7e3ad1c6b Remove NDEBUG (assert() disable) define from the X Server.
A few pieces of code were abusing this define for other purposes, which are
converted to #ifndef DEBUG instead.  There should be no ABI consequences
to this change.

The rationale is that having the define in xorg-server.h also disables
assert() drivers, which is unexpected, and also difficult to avoid since
xorg-server.h is included in their config.h, and you can't put a #undef in
config.h.  As for removing it from the server instead of moving it to an
internal header, we probably shouldn't have unnecessary assert()s in
critical server paths anyway, and if we do we could #define NDEBUG in the
specific cases needed.
2008-04-10 10:35:14 -07:00
Peter Hutterer 74628d6397 dix: change GetEventList to return length of list and set parameter in place.
Changing DDXs to use new prototype too.
2008-02-19 16:53:15 +10:30
Peter Hutterer 3fe64d8d27 Move input event list initialisation and storage from DDX to DIX.
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-02-18 18:46:01 +10:30
Benjamin Tissoires 6c38682084 kdrive: AddInputClient takes a ClientPtr. 2008-01-31 15:51:32 +10:30
Peter Hutterer 38bf01bd1c Merge branch 'master' into mpx 2008-01-10 13:38:46 +10:30
Richard Purdie c31aead0fe [Kdrive] make XCalibrate 'orientation aware' 2008-01-08 12:31:47 +01:00
Peter Hutterer f367285fd5 Merge branch 'master' into mpx
Conflicts:

	Xi/exevents.c
	dix/devices.c
	dix/getevents.c
	include/dix.h
	mi/mieq.c
2007-08-12 15:31:10 +09:30
Tiago Vignatti 7d1a749b21 Export device path key options to be called by the command line of server. 2007-08-07 22:59:12 -03:00
Tiago Vignatti aee3588a4a Update KdUseMsg() for completeness. 2007-08-07 22:49:07 -03:00
Tiago Vignatti 1339e57485 Fix typo. 2007-08-07 04:24:34 -03:00
Tiago Vignatti d9ee5f3e3a Clean a little bit the code. 2007-08-07 04:22:26 -03:00
Tiago Vignatti 7a5eb3e96b Let xkb options be passed through command line in kdrive servers. I start my
Xephyr using something like:

    ./hw/kdrive/ephyr/Xephyr :1 -fp /usr/share/fonts/X11/misc/ -mouse ephyr -keybd ephyr,,xkblayout=br,xkbmodel=abnt2
2007-08-07 02:16:44 -03:00
Tiago Vignatti 600ef07113 Fix kdrive command line parser. 2007-08-03 15:33:41 -03:00
Daniel Stone 7c9e8fd56e Input: Allow enabling and disabling of devices
Add DEVICE_ENABLE to KDrive and XFree86 to allow us to enable and disable
devices on the fly.
2007-08-01 01:53:31 +03:00
Tiago Vignatti 9131d560a0 Postpone options variable assignment to fix segfault when we got a device but
its driver is incorrect. Also if (!ki && !pi) can never be true.

This one also adds the device option field.
2007-07-05 02:47:34 -03:00
Tiago Vignatti 41b485d550 kdrive must to know that devices are unplugged. 2007-07-05 02:40:07 -03:00
Adam Jackson 4d76075dbb Death to RCS tags. 2007-06-29 14:06:52 -04:00
Tiago Vignatti 1340f34ec9 Fix kdrive XKB. 2007-06-27 03:04:55 -03:00
Peter Hutterer d4dad6f84f Merge branch 'master' into mpx
Conflicts:

	configure.ac
	dix/events.c
	hw/xfree86/common/xf86Xinput.c
2007-04-12 11:11:03 +09:30
Remigiusz Marcinkiewicz aecbc71214 Input: Allow a pointer to a device to be returned in NIDR
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-11 00:38:16 +03:00
Magnus Vigerlöf 82962bbae2 Input: Add DeleteInputDeviceRequest
Add DIDR, which asks the DDX to remove a device, analogous to
NewInputDeviceRequest.  Only implemented for XFree86 at the moment.
2007-04-10 23:58:20 +03:00
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
Adam Jackson 021fc5cb2c Static markup and dead code cull over xkb/.
The former <X11/extensions/XKBsrv.h> has been pulled into the server now as
include/xkbsrv.h, and the world updated to look for it in the new place,
since it made no sense to define server API in an extension header.  Any
further work along this line will need to do similar things with XKBgeom.h
and friends.
2007-03-20 18:37:02 -04:00
Peter Hutterer c5b07fb717 kdrive: update kdrive to new mi API with additional device argument. Includes
an update of ati_cursor.c and i810_cursor.c
2007-03-14 17:42:30 +10:30
Daniel Stone 5507cb885d kdrive: delete input debugging, yet again ...
I have no idea how this keeps on coming back.
2007-02-16 23:02:45 +02:00
Daniel Stone a2d6242106 kdrive:remove Change{Keyboard,Pointer}Device
This was removed in the DIX, so just axe it.
2006-11-02 00:46:33 +02:00
Daniel Stone 738d2e8817 kdrive: move bell ringing into an OS function
Move the bell into an OS function, and use that if it's declared; else,
fall back to using the driver's function.
Remove the Linux keyboard bell function; just move it into the OS layer.
Use named initialisers when converting the old structures, and eliminate
unused functions.
2006-10-29 03:48:02 +03:00
Daniel Stone 65cd5aa4d7 kdrive/input: remove unnecessary #ifdef XINPUTs
Xi is now mandatory, so don't bother with the ifdefs.
2006-10-25 01:12:45 +03:00
Daniel Stone b9e180e632 port all users to the new DIX motion history API
Port KDrive, Xvfb, and Xnest, as well as the virtual core devices, to the
new motion history API.  Make GetPointerEvents also update the history.
2006-10-25 01:09:19 +03:00
Daniel Stone a7c2d9a15d kdrive: numerous warning fixes 2006-10-23 06:08:27 +03:00
Daniel Stone ac240b00ff kdrive/input: use Absolute instead of Touchscreen
Adjust to suit Zepheniah's new absolute device API.
2006-10-23 02:54:07 +03:00
Daniel Stone f08b6b2367 kdrive: change DEVICE_TOUCHSCREEN to DEVICE_ABS_{CALIB,AREA} 2006-10-22 12:30:02 +03:00
Daniel Stone aeba855b07 move keymap copy to event processing, from enqueuing
Move the keymap copying to event processing time (in
ProcessInputEvents), instead of being at event enqueuing time.
Break SetCore{Pointer,Keyboard} out into separate functions.
Change mieqEnqueue to take a device pointer, that asks for the
_original_ device associated with this event.
2006-10-20 00:43:11 +03:00
Daniel Stone 58314756ae GetPointerEvents: add first_valuator parameter
Add a first_valuator parameter.  Looks correct by inspection, but untested
with first_valuator != 0 as yet.
2006-10-08 16:18:05 +03:00
Daniel Stone 8d8e7f8bae kdrive/input: remove excessive debugging in NIDR 2006-10-08 15:26:54 +03:00
Daniel Stone ad631afcf3 make core keyboard/pointer map functions act on all core-sending devices
Make Set{Keyboard,Modifier,Pointer}Mapping act on all devices which send core
events.
Change LegalModifier to accept a DeviceIntPtr.
2006-09-29 00:34:23 +03:00
Daniel Stone f9624e0109 kdrive/input: verify SIGIO with --enable-debug 2006-08-17 16:09:51 +03:00
Daniel Stone 5d073697ad kdrive/input: minor warning cleanups
And also a compiler error fix when VERIFY_SIGIO is defined.
2006-08-15 15:37:10 +03:00
Daniel Stone 47c1c948e6 kdrive/input: only run special key behaviours on non-XKB
Only attempt to manually deal with special key behaviours (e.g. terminating
the server) when not using XKB, and leave locking behaviour up to GKVE.
2006-08-15 15:25:16 +03:00
Daniel Stone 539d1f3347 GKVE/GPE: have DDX allocate events
Don't allocate events on every GKE/GKVE/GPE call, just have the DDX manage
it instead.  Introduce GetMaximumEventsNum(), which is the maximum number
of events these functions will ever produce.
2006-08-10 14:00:14 +03:00
Daniel Stone baf93b3abe kdrive: move map initialisation to KdNewPointer
Do a linear n -> n initialisation on the map up until KD_MAX_BUTTON in
KdNewPointer, moving it out of both KdParsePointer, and KdPointerProc.
Also remove dead pointer acceleration code.
2006-08-07 21:12:45 +03:00
Daniel Stone 98fdf874ee move all autorepeat logic to DIX
Move core autorepeat logic for keyboards down to the DIX, remove it from
KDrive.
2006-08-07 16:51:39 +03:00
Daniel Stone 997ba45b19 fix incorrect button test
Test for n (1..nButtons) being under nButtons, not button (1..(1<<nButtons)).
2006-08-04 11:18:16 +03:00
Daniel Stone eb7733a48a kdrive: drop excessive NewInputDeviceRequest debugging 2006-07-26 11:28:45 +03:00
Daniel Stone f18c3122a5 sanitise debug output
Don't spit out huge chunks of pointless ephemera, especially without
--enable-debug.
2006-07-21 15:19:54 -04:00
Daniel Stone 463e0fe35b update KDrive to new input API
Update KDrive to fit the new API (mieqInit and InitPointerDeviceStruct), and
include InitTouchscreenDeviceStruct in the DIX.
2006-07-21 15:19:54 -04:00
Daniel Stone 02d0910511 new KDrive input world order
Convert KDrive to GPE/GKE interface.
Add first-class drivers and enumerate every device separately through
Xi, instead of lamely attempting to aggregate them.
Add XKB support to the Linux keyboard driver.
Add 'thumb button' support to the tslib driver.
Rejig InitInput, so each DDX has to add a list of drivers it supports.
Support NewInputDeviceRequest, et al.
2006-07-21 15:19:51 -04:00
Daniel Stone fd8bde8bb0 Remove -xkbmap argument. 2006-05-29 11:14:03 +00:00
Alan Coopersmith b46d6a44fa Make Xephyr build on Solaris:
Add #include <sys/file.h> on Solaris for FNONBLOCK/FASYNC definitions
hw/kdriver/linux/Makefile.am Move agp.c & agp.h to KDRIVE_HW_SOURCES since
    they're not needed for Xephyr-only builds
Add -lrt to XEPHYR_LIBS if needed to get nanosleep().
2006-05-03 23:45:16 +00:00
Keith Packard 8987b2c1ef Make more extensions optional in build (for kdrive). Fix kdrive build for
actual hardware. Fix kdrive pointer signed/unsigned types. Add
    kdrive-required YX rotation functions. Replace rgb text file loading
    with static rgb color table.
2006-02-16 07:17:31 +00:00
Adam Jackson 49a9249239 Make kdInputMachine static const, shrinks .data a bit. 2005-12-29 21:11:41 +00:00
Adam Jackson 7fd73d2953 Build fixes: XSERVER_LIBS -> KDRIVE_LIBS, config.h -> kdrive-config.h 2005-12-27 08:29:50 +00:00
Keith Packard a11ce76b06 Build with modular X.org libraries and headers.
composite/compwindow.c Don't damage unmoved windows. Let border clip reset
    leave damage alone, pending actual damage for painting.
2005-08-08 06:25:21 +00:00
Keith Packard db2c83551c hw/kdrive/ati/radeon_composite.c Support linear filtering
Change how touch screens work -- make them just another 'mouse' device. Add
    unfinished (and unused) code to accelerate tiled fills.
2005-02-08 22:43:54 +00:00
Phil Blundell 36d9e01c0d New global variable. (KdProcessArgument): Set it to TRUE on -nozap switch.
(KdUseMsg): Add help for -nozap and -rgba switches.
Declare.
Honour dontZap flag.
2004-11-13 16:41:00 +00:00
Phil Blundell 258c9016a0 Block SIGIO before disabling input fds. (KdEnableInput): Unblock it after
enabling them again.
2004-10-20 18:02:32 +00:00
Carlos Romero f96ef08d48 Initial kdrive XKB/XINPUT support, use --enable-xkb --enable-xinput 2004-07-07 19:21:07 +00:00
Warren Turkal b146ef1548 Moving toward a working input extension. 2004-02-15 15:04:57 +00:00
Jaymz Julian bd20c8d340 Polling input mode for the kdrive os layer. And a moose! 2004-02-05 09:09:51 +00:00
Keith Packard 7e1a564c41 Replace translucent compositing hacks with PictOpSrc to match eventual
extension semantics. Replace mouse acceleration with quadratic.
2003-11-05 06:46:13 +00:00
Keith Packard 5378236aa6 merge xfixes_2_branch back to HEAD 2003-11-02 19:56:10 +00:00
Keith Packard 4b844cafb2 Check for off-screen pixmap support in KaaDrawableIsOffscreenPixmap. -Wall
fixes. Allocate pixmap private space only for screens with off-screen
    pixmap support
2003-10-14 05:07:39 +00:00
Keith Packard aae3e6dcb3 configure.ac Makefile.am os/oscolor.c Xext/saver.c Xext/Makefile.am
hw/kdrive/linux/ts.c hw/kdrive/src/Makefile.am hw/kdrive/src/kdrive.h
    hw/kdrive/src/kinput.c hw/kdrive/src/kmap.c Autodetect VM86 (for vesa),
    AGPGART, APM, MTRR, tslib and handhelds.org touch screen. Add
    USE_RGB_BUILTIN and code for fileless RGB database. Add
    MIT-SCREEN-SAVER
2003-10-04 02:43:16 +00:00
Keith Packard 5a21f4f4d0 Add XDM cookies. Fix up support for pkgconfig X bits 2003-10-01 06:43:50 +00:00
Keith Packard ce55d3234d Move kdrive common sources to src dir 2003-09-11 05:15:08 +00:00
Keith Packard 283a7f32c4 Update RCS tags, fix keyboard hang on VT switch, fix scroll wheel mice, add
-rawcoord option to not transform mice on rotate, fix mtrr to use
    power-of-two size, add a few vesa options
2003-07-07 19:13:03 +00:00
Keith Packard 7827fce0b5 Allow input devices to be closed while the VT is switched away (needs
per-driver support)
2002-11-13 16:37:39 +00:00
Keith Packard 612e82053d Clean up touch screen hacks for controlling pointer on alternate screen 2002-11-05 05:28:34 +00:00
Keith Packard f0a8d06fca Refix mouse matrix computation for touch screens. Update usage message for
-screen option
2002-10-31 18:29:50 +00:00
Keith Packard 28d191680e Uninitialized mouse matrix elements 2002-10-30 21:25:53 +00:00
Keith Packard 9373d9186b Fix mouse mapping under reflection 2002-10-04 01:44:20 +00:00
Keith Packard a80e1e5aed Update kdrive servers to support reflection 2002-10-03 22:09:04 +00:00
Keith Packard 2698ee9f29 Prefer touchscreen to mouse 2002-08-15 18:07:57 +00:00
Keith Packard 3abb3e0739 kdrive: fix button emulation for iPAQ 2002-01-18 16:25:19 +00:00
Keith Packard 28fd5f7525 kdrive: add new auto-detecting and auto-switching mouse driver 2001-10-12 06:33:12 +00:00
Keith Packard 5f310d7f8b kdrive: restructure APM/VT switch support to reset keyboard state and flush
buffer on APM resume
2001-09-29 04:16:39 +00:00
Keith Packard 628d7695d1 kdrive: disable sigio debugging 2001-08-09 09:06:08 +00:00
Keith Packard 79486b3b5c Too many changes, but all in kdrive:
Add support for global screen origins (-origin option), handles both
    Xinerama and mouse crossings.
Fix XV enable/disable sequences -- can't use card wrappers as cards have
    more than one screen.
Change vesa/fbdev to use new depth-independent rotation shadow update
Fix vesa to allow starting rotation value (again)
Make vesa driver write all colormap changes in one INT10 call
2001-07-20 19:35:30 +00:00
Keith Packard 562474091a Fix TOUCHSCREEN support in kdrive 2001-07-11 02:58:19 +00:00
Keith Packard 67cd53abfc Rework kdrive input fd handling, enable multiple simultaneous mice 2001-06-29 14:00:41 +00:00
David Dawes ba83516098 38. Fix xmh's use of XtNewString() with getenv (#4694, Tim Waugh).
37. Xdm/PAM fixes: leave it to PAM to observe whether or not an account is
    locked, and reinitialize credentials after calling initgroups(),
    because sometimes the credentials pam_setcred() gives are in the form
    of group membership (#4693, Mike Harris).
35. Fix warnings when building mieq.c (#4689, Adam Sulmicki).
34. Fix some bugs in the cz and sk entried in XKB's keymap/xfree86 file
    (#4692, Ivan Pascal).
33. Add 'hr' entries to XKB's keymap/xfree86 and rules/xfree86.lst files
    (#4687, Nerijus Baliunas).
32. Include <X11/Xutil.h> in shape.h to get Region typedef (#4686, Adam
    Sulmicki).
2001-05-25 18:40:59 +00:00
Alan Hourihane e9314bd34e wrap some stuff around #ifdef TOUCHSCREEN 2001-05-25 07:44:29 +00:00