Commit graph

8764 commits

Author SHA1 Message Date
Michel Dänzer
d33b3bf41b Xext: Fix cursor reference counting hazard.
Make sure the reference count of the new cursor is increased before the old
one is decreased, otherwise bad things will happen if they're one and the
same and the reference count is 1 initially. Not sure this can actually happen
here, but better safe than sorry.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 3083c5d0c4)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 10:49:56 +10:00
Mikhail Gusarov
4520d5cc5f kdrive: Bump evdev maxKeycode
There are keycodes > 193 in evdev, e.g. KEY_WIMAX which is 246 .

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Adam Jackson <ajax@nwnk.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit e086b99c1f)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 10:48:24 +10:00
Peter Hutterer
48f8a7d125 configure: Always define XINPUT.
This define was removed in e251c9e75a "Remove all traces of #ifdef XINPUT
and the matching bits from the configure.ac". Drivers that support multiple
server versions and still check for ifdef XINPUT now always build without
XINPUT support if they're calling XORG_DRIVER_CHECK_EXT(XINPUT, inputproto).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
(cherry picked from commit 6389405b56)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 09:47:54 +10:00
Jeremy Huddleston
1130a0def9 XKB: Fix garbage initialization
XkbEnableDisableControls set extra garbage bits on the xkbControlsNotify
changedControls mask because it was uninitialized on the stack.

Found by clang

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 8311cd5f89)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 09:47:43 +10:00
Paulo Ricardo Zanoni
ff5af4dc2d dix: be more verbose when we run out of opcodes
If we run out of opcodes, nothing is print on the log, making the
problem hard to debug. In the current Xserver, if you enable some
extensions like multibuffer (+2 events) and use nvidia binary driver (+5
events) you can run out of opcode numbers.

Signed-off-by: Paulo Ricardo Zanoni <pzanoni@mandriva.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit a9fe7cfa77)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 09:47:01 +10:00
Pierre-Loup A. Griffais
2350035463 Don't keep a pointer to a possibly freed cursor when changing screens, preventing a crash in xf86CursorEnableDisableFBAccess() trying to restore it.
Signed-off-by: Pierre-Loup A. Griffais <pgriffais@nvidia.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 6b09f66d8c)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-09 09:46:50 +10:00
Peter Hutterer
2297ad916a dix: EventToCore needs to copy the root window too.
This value isn't actually set for normal events but it saves us some work
for the record extension support.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit b4baab90c0)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-07 13:39:43 +10:00
Jeremy Huddleston
49a2b55e0e XQuartz: Re-query dixScreenOrigins as the value could've changed.
Fix a regression in 9c9c3a85b0

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Acked-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 28a5f14b40)
2010-03-29 15:27:48 -07:00
Jeremy Huddleston
68319e7f07 XQuartz: Workaround weird key data reported on some layouts
This should make 'Unicode Hex Input' work as an input layout.

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Acked-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 339207be6f)
2010-03-29 15:27:48 -07:00
Roland Scheidegger
2ad8aae749 hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions
The problem is that the xf86_use_hw_cursor(_argb) functions may get this
correctly now, some drivers will replace these generic versions with their
own functions. It is pretty insane to expect them to do reference counting
of the cursor (as an example, look at driver/xf86-video-vmware to see how
that looks like as a workaround). There are even places in xserver itself
which replace these two functions.
The segfaults if no reference counting is done are caused because the
reference count of the cursor reached zero, hence the cursor was freed,
however xf86CursorEnableDisableFBAccess() brought it back to life from
the dead (from the SavedCursor).
This patch hence adds reference counting in xf86CursorSetCursor. As per Michel
Daenzer's suggestion, also free the cursor upon xf86CursorCloseScreen.
In theory with this it should be possible to remove the reference
counting in the UseHwCursor functions I think, though it should also be
safe to keep them.

Signed-off-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 67a8c659f2)
2010-03-25 19:31:37 +01:00
Tomas Carnecky
e481a4912b Fix typos in the swap functions
This should fix bug #3539.

Signed-off-by: Tomas Carnecky <tom@dbservice.com>
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 0c2fde5c8a)
2010-03-25 02:28:23 -07:00
Peter Harris
2fa794f246 Fix crash when all glyphs of a given depth are freed, but not all glyphsets
This is how the crash can be triggered with only two clients on the system:
Client A: (already running)
Client B: Connect
Client B: CreateGlyphSet(depthN)
Client A: Disconnect
Server: free globalGlyphs(depthN)
Client B: AddGlyphs(depthN)
Server: SEGV

This crash was introduced with the FindGlyphsByHash function
in 516b96387b. Before that revision,
ResizeGlyphSet was always called before FindGlyphRef, which would
re-create globalGlyphs(depthN) if necessary.

X.Org Bug 20718 <http://bugs.freedesktop.org/show_bug.cgi?id=20718>

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 185185eeb4)
2010-03-24 11:33:00 -04:00
Jeremy Huddleston
4c85c3815a XQuartz: Constrain the pointer to the updated display bounds on display reconfigure.
http://xquartz.macosforge.org/trac/ticket/346
(cherry picked from commit ed31d50b5f)
2010-03-22 00:15:54 -07:00
Jeremy Huddleston
b226618f55 XQuartz: pbproxy: Make standalone xpbproxy respect the launchd prefix
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
(cherry picked from commit 38215cc43e4c012588c7a50344b8fe368d1252cc)
2010-03-20 16:48:45 -07:00
Jeremy Huddleston
088777f2b6 XQuartz: xpbproxy: Cleanup xpbproxy threading
Confine xpbproxy to a single thread
Runs inside its own CFRunLoop

Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
(cherry picked from commit 69869d79f4c21eb385ff3c64bac649d93c7dd2ad)
2010-03-20 16:48:45 -07:00
Jeremy Huddleston
b3f4a9a64b XQuartz: Minor cleanup
Move RandRInit to where it will need to be (not yet implemented)

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 7da4f9df9c6490e3e604c170415d5af2d8c8ff29)
2010-03-20 16:48:45 -07:00
Jeremy Huddleston
b444205399 XQuartz: GLX: Fix Availability for Tiger ppc workaround
Signed-off-by: Jeremy Huddleston <jeremyhu@freedesktop.org>
(cherry picked from commit 88baffc25a193c7c7154a94a687e7cb0f8b180ba)
2010-03-20 16:48:45 -07:00
Peter Hutterer
c552ec12f9 xserver 1.7.6
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-17 10:50:41 +10:00
Jeremy Huddleston
63ef872068 Revert "XQuartz: Explicitly pass a bellProc to make XBell() work again."
I'm not quite sure why this was necessary, but DDXRingBell is being called
from CoreKeyboardBell, so we don't need a separate bellProc which would
result in multiple rings.

This reverts commit 7e7e7935ee.

Conflicts:

	hw/xquartz/quartzKeyboard.c

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-03-16 11:40:53 -07:00
Jeremy Huddleston
31292a7c77 XQuartz: Use an empty xkb keymap by default
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 5172253bae)
2010-03-16 00:01:47 -07:00
Peter Hutterer
5b4fabb910 configure: restore SHA1_LIB for XSERVER_SYS_LIBS
Accidentally removed in ff5fb43a4b, caused by
a botched merge when cherry-picking 178da6534f.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-15 09:03:19 +10:00
Peter Hutterer
5a2b3f36a0 xserver 1.7.5.902
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-12 16:53:06 +10:00
Peter Hutterer
c25b34fe61 Merge branch 'server-1.7-nominations' into server-1.7-branch 2010-03-12 16:37:28 +10:00
Peter Hutterer
ff5fb43a4b Xext: Link to external libraries when necessary.
Although the DDX should be linked to the necessary libraries, we may
also need to pull them in directly to the module to ensure the symbols
are resolved at runtime. Should fix this bug with XSELINUX:

/usr/bin/X: symbol lookup error:
/usr/lib64/xorg/modules/extensions/libextmod.so: undefined symbol:
is_selinux_enabled

-v2: use _LIBADD instead of _LIBS; remove SELINUX_LIBS from
     XSERVER_SYS_LIBS as it should only be needed in extmod.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 178da6534f)

Conflicts:

	configure.ac
2010-03-12 14:39:19 +10:00
Daniel Stone
a69c7a4c53 Record: Avoid duplicates from replaying frozen events
Reintroduce a check which used to be there in the old
ProcessKeyboardEvent/ProcessPointerEvent codepath, which avoids us
recording events subject to a grab twice: once when it's first processed
in EnqueueEvent, and then again when it's thawed and being replayed.

This required a tiny amount of code motion to expose syncEvents.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit a2ea8c2f2c)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-12 14:38:57 +10:00
Dave Airlie
3ae6a3779d dri2: return FALSE not BadValue.
With 1.7 if you try and send a DRI2Connect with this value set
to anything but 0, the server will segfault due to the strlen
in the function this returns to, since BadValue != FALSE.

Fixed via other work in 1.8.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2010-03-10 16:07:09 +10:00
Peter Hutterer
2086e4920a Revert "dix: Use DeliverGrabbedEvent for implicit passive grabs (#25400)"
Reported-by: Florian Mickerl <florian@mickler.org>
"this regresses my desktop. fluxbox is not able to move the windows around
anymore. also popup of context-menue does not work. (well sometimes it does,
but then the fluxbox-keyboard-shortcuts do not work)"

This reverts commit 351d11fd46.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-09 09:42:42 +10:00
Peter Hutterer
1242e494c8 xserver 1.7.5.901
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-05 09:27:13 +10:00
Keith Packard
d023b78c73 Allow for missing or disabled compat_output
When the compat output is missing (I don't think this is actually
possible), or is disabled (and hence has no crtc), we would like to
avoid dereferencing NULL pointers. This patch creates inline functions
to extract the current compat output, crtc or associated RandR crtc
structure, carefully checking for NULL pointers everywhere.

Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit de86a3a344)
2010-03-04 16:12:17 +01:00
Peter Hutterer
7def5cdf7d configure: move SELINUX_LIBS to XSERVER_SYS_LIBS
All ddxs require linking against selinux if enabled.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 1c2abec479)

Conflicts:

	configure.ac
2010-03-04 15:43:04 +10:00
Peter Hutterer
4026682511 configure: move libselinux requirement up to the common section.
Let's have all version-specific requirements in one block.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit cab99b947c)

Conflicts:

	configure.ac
2010-03-04 15:43:04 +10:00
Peter Hutterer
351d11fd46 dix: Use DeliverGrabbedEvent for implicit passive grabs (#25400)
A client requesting a GrabModeSync button grab, owner-events true, with only
the ButtonRelease mask set would never receive the press event even if the
grab window had the ButtonPress mask set.

The protocol requires that if owner-events is true, then the delivery mask
is the combination of the grab mask + the window event mask.

DeliverGrabbedEvents does this already for us, checking first the delivery
based on owner_events and then based on the grab mask. AFAICT, the device
cannot enter the states FREEZE_BOTH_NEXT_EVENT or FREEZE_NEXT_EVENT that
would be handled by DGE in any possible path here.

Bonus point - CheckPassiveGrabsOnWindows suddenly becomes a lot lesss
complicated.

X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit cf72b5437d)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-03-04 15:43:03 +10:00
Alan Coopersmith
8f743f17ed Solaris xf86OSRingBell() off-by-one error in filling iov[] array
When generating sound buffers for /dev/audio bells, insert waveform
for beep *or* silence, but not both, so we don't write one entry past
the end of the iov buffer when the final bit of soundwave ends up in
the final entry allocated in the iov array.

Fixes OpenSolaris bug 6894890:
 http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894890

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-24 18:51:59 -08:00
Peter Hutterer
d35e08b6db dix: remove now-erroneous comment about frozen slave devices.
A direct grab on a slave device through XI2 detaches it, regardless of
whether the grab is sync or async. So this comment doesn't apply to XI2
anyway.

For XI1, aside from your life being miserable already, it doesn't matter as
XI1 does not have a concept of attachment. You can freeze a device and if
you don't freeze _all_ other devices at the same time, the master device can
still happily send events to the client.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit c0d9419131)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-25 11:50:58 +10:00
Peter Hutterer
11c27f261e dix: try to ring the bell even if the current device doesn't have one. (#24503)
Evdev devices do not have the bell proc set, but XTEST devices do. By
exiting early, the bell only rings if the last keyboard used was the XTEST
keyboard and hence the bell proc is still set on the master but not if an
evdev keyboard was used last.

The better approach here is to try to ring the bell on all devices attached
to this master device in case one or more actually do produce an audible
sound. That's also XKB's behaviour if XkbUseCoreKbd is specified as device
identifier.

X.Org Bug 24503 <http://bugs.freedesktop.org/show_bug.cgi?id=24503>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
(cherry picked from commit 758f697175)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-25 11:49:59 +10:00
Eamon Walsh
1f96c03718 xselinux: Bump extension minor version.
Changes introduced in this version:
	- 3 window-related requests now handle pixmaps also.

Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit db4f676f25)
2010-02-23 16:58:52 -05:00
Eamon Walsh
dd9573d408 xselinux: Rename window-related requests that now support pixmaps.
Renamed requests:
	SetWindowCreateContext -> SetDrawableCreateContext
	GetWindowCreateContext -> GetDrawableCreateContext
	GetWindowContext -> GetDrawableContext

Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-02-23 16:58:41 -05:00
Eamon Walsh
7cec236a03 xselinux: Allow GetWindowContext to be used for pixmaps as well.
Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-02-23 16:43:17 -05:00
Eamon Walsh
1b6f498b84 xselinux: Remove reference counting calls for SID objects.
Starting with libselinux 2.0.86, SID objects are no longer
reference counted and the sidput() and sidget() calls are no-ops.

Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-02-23 16:35:46 -05:00
Eamon Walsh
c030ec32b6 libselinux now has a pkgconfig file. Use it.
Also remove HAVE_NETLINK_AVC_ACQUIRE_FD tests, because we now
require a version of libselinux that has it.

Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Reviewed-by: Keith Packard <keithp@keithp.com>
2010-02-23 15:45:27 -05:00
Peter Hutterer
c8dd981c7f Xi: assume BadMode for non-BadMatch errors returned from SetDeviceMode.
The XI protocol spec only allows for two errors on the SetDeviceMode
requests: BadMatch or BadMode. BadMode however is a dynamically assigned
extension error and the driver doesn't have access to the actual error
number. Hence, if a SetDeviceMode driver returns an error other than
BadMatch, assume BadMode.

The two exceptions are BadAlloc and BadImplementations, pass these on to the
client (any request is allowed to return either of those).

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit e40ba5798c)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-23 10:51:25 +10:00
Chris Dekter
5ac8298469 Re-enable RECORD extension.
RECORD was disabled during the switch to internal events. This patch
modifies the record callback to work with internal events instead of
xEvents. The InternalEvents are converted to core/Xi events as needed.

Since record is a loadable extension, the EventTo* calls must be externed.

Signed-off-by: Chris Dekter <cdekter@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 122fc0e7a0)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-23 10:51:13 +10:00
Tiago Vignatti
d1732a637e xfree86: vgaarb: remove useless debug
This is RAC's remnant. Any sane person would use a more wise method of
debugging instead.

X.Org Bug 26074 <http://bugs.freedesktop.org/show_bug.cgi?id=26074>

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 5e81078cf5)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-22 11:11:59 +10:00
Peter Hutterer
dd0217fc93 dix: don't update the slave coordinates from the VCK.
A keyboard event from a device with both valuators and keys will be posted
through the VCK. In this case, do not update the slave device coordinates
from the VCK - they're always 0/0. Leave them as-is, for the next pointer
event will continue where it left.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 6f265d55a6)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-19 11:41:54 +10:00
Jeremy Huddleston
8dda9ba67a XQuartz: Fix a possible buffer overrun in quartzAudio
Also dropped deprecated API while there

Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 4e8bf12b13)
2010-02-18 09:56:47 -08:00
Jeremy Huddleston
4d8ad88b57 XQuartz: clang static analysis fixes
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit 4127e8e5be)
2010-02-18 09:55:24 -08:00
Peter Hutterer
f0ec2e0d7d xserver 1.7.5
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-16 13:08:02 +10:00
Julien Cristau
15e9a3fc0c dix: restore lastDeviceEventTime update in dixSaveScreens
This was removed in 6b5978dcf1 (Do not
reset lastDeviceEventTime when we do dixSaveScreens), but caused a
regression for XResetScreenSaver.  Add the lastDeviceEventTime update
back, but restrict it to that case.

X.Org bug#25855 <http://bugs.freedesktop.org/25855>

Reported-by: Lubos Lunak <l.lunak@suse.cz>
Tested-by: Lubos Lunak <l.lunak@suse.cz>
Signed-off-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 001ce71dc1)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-16 11:30:46 +10:00
Peter Harris
38a83dce23 Don't double-swap the RandR PropertyNotify event
The event is already swapped in randr.c/SRROutputPropertyNotifyEvent, so
it should not be swapped here.

X.Org Bugzilla #26511: http://bugs.freedesktop.org/show_bug.cgi?id=26511

Tested-by: Leonardo Chiquitto <leonardo@ngdn.org>
Acked-by: Adam Jackson <ajax at redhat.com>
Reviewed-by: Julien Cristau <jcristau at debian.org>
Signed-off-by: Peter Harris <pharris@opentext.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 97b03037f4)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-16 11:30:46 +10:00
Peter Hutterer
829980a4ff Xi: reset the sli pointers after copying device classes. (#25640)
If the indicator flags have the XkbSLI_IsDefault bit set, the indicator map
and names aren't their own bit of memory but rather point into the
device->key->xkbInfo->desc structure. XkbCopySrvLedInfo knows about this and
leaves the pointers alone.

When copying the classes from the slave to the master, these pointers are
copied and still point to the dev->key class of the slave device. If the
slave device is removed, the memory becomes invalid and a call to modify
this data (e.g. XkbSetIndicators) may cause a deadlock.

The copying of dev->key relies on dev->kbdfeed to be already set up. Hence
the pointers need to be reset once _both_ kbdfeed and key have been copied
into the master device.

X.Org Bug 25640 <http://bugs.freedesktop.org/show_bug.cgi?id=25640>
Fedora Bug 540584 <https://bugzilla.redhat.com/show_bug.cgi?id=540584>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
(cherry picked from commit 48f7298657)

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-16 11:30:46 +10:00