Commit Graph

5740 Commits

Author SHA1 Message Date
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 b4380d8030 dix: don't free MDs classes on init.
The device classes aren't deleted anymore on a class change, so there's no
need to store the MD's original classes. We should however restore the MD to
sane defaults when disconnecting the last device, consider this as TODO item.
2008-04-10 19:25:43 +09:30
Peter Hutterer 04dff74ffd dix: Rework Enter/Leave semaphore system.
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-04-10 19:22:59 +09:30
Peter Hutterer a88386ee27 Xi: only DeliverFocusedEvents if the event is not a pointer event.
A pointer device may have a focus class, but even if so, pointer events must
be delivered to the sprite window, not the focus window.
2008-04-10 14:42:26 +09:30
Peter Hutterer 4824942527 Xi: dont copy FocusClassRec if the master already has one.
Blindly copying will override the focus setting of the master. If there's XI
applications running, they may set the SD focus, while leaving the
MD's focus as it was. In this case, after a class swap we still want to get
the MD's events to the same window as before.
2008-04-10 14:36:10 +09:30
Peter Hutterer bce6091c6b dix: Extend IsKeyboardDevice() to not include pointer devices.
If a pointer devices has key classes as well, don't register it as a keyboard
device. Let's see how much that change will break.
2008-04-10 09:59:45 +09:30
Peter Hutterer cc7dab2d04 dix: Dont deliver grabbed pointer events to a focus window.
If an pointer event is being processed during a device grab, don't deliver it
to the focus window, even if the device has a focus class. Reason being that
some pointers may have a focus class, thus killing drag-and-drop.
2008-04-10 09:58:50 +09:30
Peter Hutterer df2545b98d xfree86: Sanity check before retrieving the paired device.
Some pointer devices send key events [1], blindly getting the paired device
crashes the server. So let's check if the device is a pointer before we try to
get the paired device.

[1] The MS Wireless Optical Desktop 2000's multimedia keys are sent through
the pointer device, not through the keyboard device.
2008-04-10 08:50:43 +09:30
Peter Hutterer 5a4c6621aa Xi: some extra checks for validity of kbd and mouse.
Floating SDs are paired with themselves, so the paired device may not be a
proper keyboard or mouse. Put some extra checks in to avoid dereferencing a
nullpointer later.
2008-04-10 08:29:05 +09:30
Peter Hutterer 8e0a652930 dix: When floating, set sprite to NULL before calling InitializeSprite.
InitializeSprite won't create a new one if it already exists, with the result
of overwriting the master's sprite. This master sprite is then assigned to the
floating slave, and freed when the slave is reattached later.
Setting the sprite to NULL forces InitializeSprite to alloc a new one, and
this one can be freed without further repercussions.
2008-04-10 08:25:36 +09:30
Peter Hutterer e7211eb0b3 Xi: When attaching, check for ptr -> ptr and keybd -> keybd.
Some pointer devices have key classes (e.g. MS Optical Desktop 2000). The
previous test was performed as Error if ptr -> keybd or keybd -> ptr. This
doesnt work with such devices. New test is Succeed if ptr->ptr or
keybd->keybd.
2008-04-10 08:08:54 +09:30
Eric Anholt 7909ebe7f1 dolt: add FreeBSD support (this and ppc have been submitted upstream). 2008-04-09 10:43:25 -07:00
Michel Dänzer b4842d8dc3 dolt works on powerpc Linux. 2008-04-09 16:17:35 +02:00
Michel Dänzer 0d1746995d Fix off-by-one error in ProcXResQueryClients().
Fixes memory corruption reported at
http://bugs.freedesktop.org/show_bug.cgi?id=14004 .
2008-04-09 13:49:05 +02:00
Daniel Stone 6d031cbdef configure.ac: Do the dolt
Use dolt instead of libtool whereever practical.  See:
http://lists.debian.org/debian-devel/2008/04/msg00286.html
2008-04-09 14:37:02 +03:00
Dave Airlie b19027fbae quirk: add quirk for ACR 640x350 default mode is wrong
RH #440186
2008-04-09 14:34:11 +10:00
Ben Byer 1f8188656a add missing dix-config include
(cherry picked from commit 126e9bc8c480b403dedc44c1e8c4fe1476340ed9)
2008-04-08 21:25:15 -07:00
Peter Hutterer cbe01b3083 Merge whot@wombat:~/potoroo/xserver into mpx 2008-04-09 10:46:46 +09:30
Jeremy Huddleston 3f51f493b6 XQuartz: Fix issue where clicking on an X11 window might send that event to an X11 window in another space.
(cherry picked from commit df21312c8b0e9ef0c809bfc57cdf64f27db0d8a7)
(cherry picked from commit 2d4194a8d124e7a9c7cd1b83635ba6957aa4ae1c)
2008-04-08 17:03:18 -07:00
Peter Hutterer 389dae73cc Xi: If device "to" has a class but "from" doesn't, free the class in "to". 2008-04-09 08:26:00 +09:30
Peter Hutterer 60c38d248c Xi: plug memory leak, free previous motion history before allocating new. 2008-04-09 07:47:34 +09:30
Peter Hutterer ea05cf0813 Xi: check if source has a key class before copying. 2008-04-08 22:09:11 +09:30
Hasso Tepper 08073862f8 configure.ac: Fix monotonic test harder
This was only introduced in a later version of POSIX, so define that
version to get it from more conformant systems.
2008-04-08 13:01:23 +03:00
Magnus Vigerlöf 5ffbcfec3d dix: Ensure Proximity events don't kill the server.
Add Prox events to the if-clauses with the other events
that are usually sent from the input devices.
Ensure that the event deliverers won't try to deliver
events of type '0' (some extended events doesn't have
an equivalent core-type)

Small modification by Peter Hutterer.

Signed-off-by: Peter Hutterer <peter@cs.unisa.edu.au>
2008-04-08 14:43:22 +09:30
Peter Hutterer 32e4a88ae6 xkb: don't overwrite CtrlProc in the second run of XkbFinishDeviceInit.
XkbFinishDeviceInit is called once when the device is initialised, but also
when a class copy causes the key class of a device to change. In this case,
overwriting the CtrlProc of the KeybdFeedbackClass with XkbDDXKeybdCtrlProc
sets up a nice recursive loop of XkbDDXKeybdCtrlProc calling itself until the
cows come home.
2008-04-08 14:43:13 +09:30
Peter Hutterer 6271df6953 xkb: don't overwrite CtrlProc in the second run of XkbFinishDeviceInit.
XkbFinishDeviceInit is called once when the device is initialised, but also
when a class copy causes the key class of a device to change. In this case, overwriting the CtrlProc of the KeybdFeedbackClass with XkbDDXKeybdCtrlProc sets up a nice recursive loop of XkbDDXKeybdCtrlProc calling itself until the cows come home.
2008-04-08 08:42:58 +09:30
Adam Tkac 726dcd9e4e Fix Xvfb input when building against current X sources. 2008-04-07 10:20:02 -04:00
Hasso Tepper 0f87b41a43 configure.ac: DragonFly BSD support
Add support for DragonFly BSD, which is just the same as FreeBSD for all
of these cases.
2008-04-07 14:09:04 +03:00
Owen W. Taylor 6b1a27023e EXA: Fix TS origin computation when implementing RenderComposite with tiling. 2008-04-07 11:01:09 +02:00
Peter Hutterer fd06e8f8c1 Merge branch 'master' into dcdc_rework
Conflicts:

	Xext/xevie.c
	dix/dispatch.c
2008-04-07 07:56:41 +09:30
Sascha Hlusiak 539bf3c283 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver 2008-04-07 00:10:16 +02:00
Sascha Hlusiak 3ab33e7cd4 Remove stale code
The jstk code for Joysticks is not used by any module, was never actually compiled and uses an API
that is deprecated these days.

No reason to keep it.
2008-04-06 23:23:47 +02:00
Peter Hutterer b46a009186 dix: sprite may be NULL, don't dereference it then.
In some rare cases (e.g. when the init fails) a device's sprite is NULL,
dereferencing it to xfree the spriteTrace is a bad idea then.
2008-04-06 09:02:57 +09:30
Peter Hutterer 638a50552e dix: remove debug error message about XI->core type conversion. 2008-04-06 08:36:21 +09:30
Peter Hutterer 8f38feb3e4 Xi: add comments for DeepCopyDeviceClasses, ChangeMasterDeviceClasses. 2008-04-05 20:37:21 +10:30
Julien Cristau 6c0cfe3d43 Fix the clock_gettime check for glibc-based non-Linux systems
We need to define _POSIX_C_SOURCE on glibc, not just Linux, so add a new
test for the __GLIBC__ macro.
2008-04-04 19:12:57 +02:00
Adam Jackson cc7c045bae Fix PCI config space cycles from int10 emulator.
The top bit of 0xCF8 is an enable bit, not part of the domain.  Sending
cycles to domain 128 instead of domain 0 is rarely the right thing to do.
2008-04-04 12:58:12 -04:00
Eric Anholt d1de3dda8e Fix clock_gettime presence detect on FreeBSD.
For non-Linux, _POSIX_C_SOURCE and friends restrict symbols defined rather
than enabling defines of symbols.  Additionally, CLOCK_MONOTONIC was
apparently added to the standard around 2000 anyway, not 1993.
2008-04-04 08:01:25 -07:00
Kristian Høgsberg ec17900f52 Convert __DRIconfigs after we've made sure createNewScreen succeeded. 2008-04-04 10:47:46 -04:00
Kristian Høgsberg 16a8ce7558 Only autoload RECORD if it was enabled. 2008-04-04 10:47:46 -04:00
Peter Hutterer d0395a7530 Xi: realloc to->valuator instead of allocing it blindly. 2008-04-04 15:05:26 +10:30
Peter Hutterer 502689847b Xi: ALLOC_COPY_CLASS_IF should only alloc if to->field doesn't exist. 2008-04-04 15:01:53 +10:30
Peter Hutterer 035b1b6995 Xi: remove duplicate copying of kbdfeed and ptrfeed. 2008-04-04 15:00:06 +10:30
Peter Hutterer 52fc7aed18 Xi: only alloc memory for feedback classes if it doesn't already exist. 2008-04-04 14:47:23 +10:30
Peter Hutterer 4eb87c8693 Xi: don't free device classes before copying them.
First commit in a series to come.
2008-04-04 14:20:37 +10:30
Dave Airlie f0915fb3c4 quirk: add quirk for ACER EDID 2008-04-04 09:59:40 +10:00
Jeremy Huddleston 2e42b67b82 XQuartz: Change reporting of space change to debug log rather than stderr
(cherry picked from commit ed15556a9fc4ebdb88f42961052fc8456082165f)
2008-04-02 18:05:55 -07:00
Ben Byer c737d04c75 The AppKit thread should not be calling directly into the X server
functions to change state when the keyboard is reloaded; instead,
pass it as an event.
(cherry picked from commit 7e653f806ff5508aace059312156f319a9ed4479)
2008-04-02 17:48:24 -07:00
Ben Byer 15b0084f1a formatting cleanup for X11Application.m (no code changes)
(cherry picked from commit eb083d3f68f459d90417558da1ed00729b749950)
2008-04-02 17:48:15 -07:00
Ben Byer e9e2d88436 moved and renamed QuartzMessageServerThread to
DarwinSendDDXEvent to make more clear what it actually does.
(cherry picked from commit bee2b377efc930e25017636e5112093a3a6549c7)
2008-04-02 17:48:01 -07:00