xorg-server: Changes to 'debian-experimental'
ChangeLog | 460 +++++++++++++++++++++++++++++++++++++
Xi/exevents.c | 27 --
configure.ac | 4
dbe/midbe.c | 6
dbe/midbestr.h | 16 -
debian/changelog | 5
dix/devices.c | 2
dix/events.c | 12
dix/getevents.c | 49 +++
exa/exa.c | 23 +
exa/exa_classic.c | 4
exa/exa_driver.c | 4
exa/exa_mixed.c | 4
exa/exa_priv.h | 3
glx/glxdri.c | 17 +
glx/glxdri2.c | 17 +
hw/dmx/input/atKeynames.h | 2
hw/kdrive/ephyr/ephyr.c | 8
hw/xfree86/common/xf86Events.c | 4
hw/xfree86/common/xf86VGAarbiter.c | 10
hw/xfree86/common/xf86cmap.c | 8
hw/xfree86/common/xf86xv.c | 8
hw/xfree86/dri2/dri2.c | 19 +
hw/xfree86/ramdac/xf86Cursor.c | 12
hw/xfree86/shadowfb/shadow.c | 11
hw/xfree86/xaa/xaaInit.c | 12
hw/xnest/Keyboard.c | 8
hw/xquartz/bundle/Info.plist.cpp | 4
hw/xquartz/quartz.c | 4
hw/xquartz/quartzCocoa.m | 11
hw/xquartz/quartzCommon.h | 15 -
hw/xquartz/xpr/xprCursor.c | 6
hw/xwin/winkeynames.h | 1
include/input.h | 9
include/privates.h | 2
include/protocol-versions.h | 2
include/xkbsrv.h | 6
mi/mipointer.c | 40 +--
mi/mipointer.h | 5
mi/miscrinit.c | 2
xkb/xkbAccessX.c | 39 ---
xkb/xkbActions.c | 19 -
42 files changed, 721 insertions(+), 199 deletions(-)
New commits:
commit 549baf9b901ec93cc9f6f4bb5b9574424022eb0e
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Jul 17 10:26:03 2010 +0100
Bump changelogs
diff --git a/ChangeLog b/ChangeLog
index 5a5e00f..e62568b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,335 @@
+commit a2c13f0d6548310e3cd115cf486d3e43edf23dcc
+Author: Keith Packard <keithp@keithp.com>
+Date: Wed Jul 14 12:57:29 2010 -0700
+
+ Bump to version 1.8.99.905 (1.9 RC5)
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 0fc02c0bf92f694889589e3648acc08d4684de37
+Merge: 0540c46 9d8ec71
+Author: Keith Packard <keithp@keithp.com>
+Date: Tue Jul 13 15:05:36 2010 -0700
+
+ Merge remote branch 'jeremyhu/master'
+
+commit 0540c46066f938ad5611c56081cfcd8457a9b718
+Author: Michel Dänzer <daenzer@vmware.com>
+Date: Tue Jul 13 14:56:53 2010 +0200
+
+ EXA: Finish access to pixmap if it's prepared at destruction time.
+
+ Previously we assumed every pixmap destroyed during a software fallback was
+ also created during a software fallback and had access prepared, but that's
+ not always true.
+
+ Fixes a server abort
+ Reported-by: 邓逸昕 <bupt.dengyixin@gmail.com>
+
+ Signed-off-by: Michel Dänzer <daenzer@vmware.com>
+ Acked-by: Maarten Maathuis <madman2003@gmail.com>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit d75e8146c414bfd512ba5dbd4a83acb334bbe19b
+Author: Keith Packard <keithp@keithp.com>
+Date: Mon Jul 12 16:01:34 2010 -0700
+
+ Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998
+
+ Because some EnterVT code needs to remove it self from the
+ call chain, we need to fix all of the wrappers to correctly
+ unwrap/rewrap during the call chain. This is a follow-on to the fix
+ for bug 27114 in commit 68a9ee8370e6f9b38218376ac92d5130a5b0ef1e.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Tested-by: Jesse Barnes <jesse.barnes@intel.com>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+ Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+
+commit 9d8ec712a67ce71ea7408f0626cda7e0fa7c3bac
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Tue Jul 13 08:56:36 2010 -0700
+
+ XQuartz: Bump bundle version to 2.6.0 for xorg-server-1.9.0 and X11R7.6
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit b2b9c458a46e9a41c3c76ffe83a2b580a41d0e90
+Author: Jan Hauffa <hauffa@in.tum.de>
+Date: Wed Jun 16 09:25:41 2010 -0700
+
+ XQuartz: Remove some dead code.
+
+ Signed-off-by: Jan Hauffa <hauffa@in.tum.de>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 648d189548530fa23d97d1e8737f89d297f1c443
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Tue Jul 13 08:25:27 2010 -0700
+
+ XQuartz: Avoid a crash when mistakenly free()ing in QuartzSetCursor on some configs
+
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 3209b094a3b1466b579e8020e12a4f3fa78a5f3f
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date: Fri Jul 9 10:36:56 2010 -0700
+
+ DRI2: re-allocate DRI2 drawable if pixmap serial changes
+
+ If a pixmap header is modified or the drawable serial changes, some
+ aspects of the drawable are likely to have changed so we should
+ re-allocate the corresponding DRI2 drawable in that case. This is one
+ way of catching when the root window pixmap changes through xrandr.
+
+ Fixes bug https://bugs.freedesktop.org/show_bug.cgi?id=28365.
+
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
+ Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 02b11509b25686ff7bd567ecb78a435701edc4c2
+Author: Jesse Barnes <jbarnes@virtuousgeek.org>
+Date: Fri Jul 9 10:36:12 2010 -0700
+
+ miModifyPixmapHeader: always update serialNumber
+
+ We should update the serial number even if we just change a single field.
+
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
+ Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 2307ab5bc9365ebbe04568edb7c7620a23689b70
+Merge: c65280c fd4f505
+Author: Keith Packard <keithp@keithp.com>
+Date: Tue Jul 6 23:54:54 2010 -0400
+
+ Merge remote branch 'whot/for-keith'
+
+commit fd4f5059f08165a726071dc9f1ca877038292f6f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jul 6 09:19:09 2010 +1000
+
+ dix: purge leftover manual key down bit setting.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit a1afe172559aff010e886cfc2a7a922d4a06c697
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jul 6 09:16:42 2010 +1000
+
+ dix: add aux. functions for button_is_down, set_button_down, set_button_up.
+
+ Same as the matching key functions. Buttons, like keys, can have two states
+ for down/up - one posted, one processed. Posted is set during event
+ generation (usually in the signal handler). Processed is set during event
+ processing when the event queue is emptied and events are being delivered to
+ the client.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit 32473d6bf38c95b2d6d5ddbf583a1e801c6605e4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jul 6 08:56:12 2010 +1000
+
+ dix: use BitIsOn/SetBit/ClearBit macros for set_key_down helpers.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit c18442908080c9833dfd6bb2ff367945d1892421
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Jul 5 16:47:57 2010 +1000
+
+ Xi: use set_key_up/down instead of manual bit handling.
+
+ We have the wrappers, use them.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 10442ce02b5be7f82b373bee1939e2b523e291d9
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Jul 5 16:54:48 2010 +1000
+
+ dix: treat flags as flags, not as value in key_is_down.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Daniel Stone <daniel@fooishbar.org>
+
+commit b46ffd25d3f211e91c67bc618ecbd58257939388
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Jul 2 15:25:14 2010 +1000
+
+ mi: rename miPointerMoved to miPointerMoveNoEvent.
+
+ Having miPointerMove and miPointerMoved is confusing, especially since both
+ do the same thing bar the event delivery. Also, miPointerMove calls
+ miPointerMoved which indicates some confusion in the temporal alignment of
+ cause and effect.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Tiago Vignatti <tiago.vignatti@nokia.com>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit dbd621705a5211540b353af81c4af83c297b74dc
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Fri Jul 2 14:22:03 2010 +1000
+
+ mi: De-duplicate some code in mipointer.c
+
+ miPointerMoved already has the same code.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+
+commit c65280ce8df4836bd7424a90482e8aa00ab6f447
+Author: Robert Hooker <sarvatt@ubuntu.com>
+Date: Sat Jun 12 20:23:09 2010 -0400
+
+ Increase advertised RENDER protocol minor version to 11
+
+ Support for the blend mode operators was added in
+ 0ce42adbf4cff9e7f049d9fc79d588ece5936177
+ and the requirement was bumped but when things were split off into
+ include/protocol-versions.h it defined it to 10. render uses
+ the lower of the client and server advertised versions so it's not
+ using the new blend mode operators.
+
+ Signed-off-by: Robert Hooker <sarvatt@ubuntu.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 9f0b193acdc29e491b6245390cf9f53b5222e6d3
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Jul 1 09:13:43 2010 -0400
+
+ miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639)
+
+ miDbeInit pre-allocates space in each DBE window private private for a
+ MiDbeWindowPrivPrivRec. miDbeAllocBackBufferName used the
+ pre-allocated space correctly (simply fetching it instead of
+ allocating a new piece of memory). However, it then called
+ dixSetPrivate anyways, which isn't necessary, and (in the new
+ dixPrivate world) causes an assert failure.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Tested-by: Magnus Kessler <Magnus.Kessler@gmx.net>
+ Reviewed-by: Magnus Kessler <Magnus.Kessler@gmx.net>
+
+commit a94cb400d15b8c78dc04148cbd8db8e5ec8364b5
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Jul 1 09:11:36 2010 -0400
+
+ Delete unused miDbe screen private private datatype
+
+ MiDbeScreenPrivPrivRec is not used in the server. Remove it, along
+ with the MI_DBE_SCREEN_PRIV_PRIV macro that tried to use it.
+
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+ Reviewed-by: Magnus.Kessler <Magnus.Kessler@gmx.net>
+
+commit f0fcffe55f280add5e4db2f5e9198a48c6f1b015
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Jun 3 19:00:54 2010 -0700
+
+ Update the sprite immediately when moving it with MouseKeys
+
+ Fix for OpenSolaris bug 6949755: Mouse Keys are ununusable
+ and possibly https://bugs.freedesktop.org/show_bug.cgi?id=24856
+
+ Ensures waitForUpdate is False before calling SetCursorPosition.
+ Normally waitForUpdate is False when SilkenMouse is active, True
+ when it's not. When it's True, the mouse cursor position on
+ screen is not updated immediately.
+
+ This is more critical on Solaris, since we disabled SigIO, thus in turn
+ disable SilkenMouse, due to the SSE2 vs. signal handler issues described in
+ Sun bugs 6849925, 6859428, and 6879897.
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 3d9079b898c432a87f9b95c1f39a85f660bf0858
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Jun 3 19:00:53 2010 -0700
+
+ Add API to update setting of waitForUpdate screen private in miPointer
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 69b2b5c85ec079ef49f84722daa5f148cedc2e1b
+Merge: b90faa7 1432785
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Jul 1 23:46:53 2010 -0400
+
+ Merge remote branch 'whot/for-keith'
+
+commit b90faa71567c4461b28515756ba5c1e6286dda16
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Jul 1 23:46:27 2010 -0400
+
+ Revert "xkb: merge lockedPtrButtons state from all attached SDs."
+
+ Preparing to merge Peter's branch.
+
+ This reverts commit 6052710670953b43b4fff5d101b727163fcb1187.
+
+commit 9fb0785449b287ba1998e08613b3c2102ec24842
+Author: Keith Packard <keithp@keithp.com>
+Date: Thu Jul 1 23:45:50 2010 -0400
+
+ Revert "Revert "dix: use the event mask of the grab for TryClientEvents.""
+
+ Preparing to merge Peter's branch.
+
+ This reverts commit 018c878e9495b21146c8f38617fdd1bf6d8cc73b.
+
+commit 48cac27870992f6bde2c48429ff03c0a7606d5c1
+Author: James Jones <jajones@nvidia.com>
+Date: Fri Jun 18 17:28:15 2010 -0700
+
+ Cast void* to pointer* to appease some compilers.
+
+ When this privates.h is included in C++ builds, the compiler
+ complains about implicitly casting void* to void**. This small
+ patch fixes that up.
+
+ Signed-off-by: James Jones <jajones@nvidia.com>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+ Signed-off-by: Keith Packard <keithp@keithp.com>
+
+commit 14327858391ebe929b806efb53ad79e789361883
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Jul 1 12:44:57 2010 +1000
+
+ xkb: release XTEST pointer buttons on physical releases. (#28808)
+
+ If a button release event is posted for the MD pointer, post a release event
+ through the matching XTEST device. This way, a client who posts a button
+ press through the XTEST extension cannot inadvertedly lock the button.
+
+ This behaviour is required for historical reasons, until server 1.7 the core
+ pointer would release a button press on physical events, regardless of the
+ XTEST state. Clients seem to rely on this behaviour, causing seemingly stuck
+ grabs.
+
+ The merged behaviour is kept for multiple keyboard PointerKey events, if two
+ physical keyboards hold the button down as a result of PointerKey actions,
+ the button is not released until the last keyboard releases the button.
+
+ X.Org Bug 28808 <http://bugs.freedesktop.org/show_bug.cgi?id=28808>
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
commit a71dbc03e65cf7b0654a6eca93ce0bf6a1711ffa
Author: Keith Packard <keithp@keithp.com>
Date: Thu Jul 1 08:27:05 2010 -0400
@@ -44,6 +376,93 @@ Date: Tue Jun 29 16:08:01 2010 +0300
Reviewed-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
+commit 339f62b1bfadb0ee77d67e351f4e30f5d5e9625f
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jun 29 15:24:51 2010 +1000
+
+ xkb: emulate PointerKeys events only on the master device.
+
+ This patch replicates the behaviour for button events. Only generate a
+ PointerKeys motion event on the master device, not on the slave device.
+ Fixes the current issue of PointerKey motion events generating key events as
+ well.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 69ac909878ef80bb74c4a9ca4150eda66debd754
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jun 29 12:12:53 2010 +1000
+
+ xkb: merge lockedPtrButtons state from all attached SDs.
+
+ Problem:
+ lockedPtrButtons keeps the state of the buttons locked by a PointerKeys button
+ press. Unconditionally clearing the bits may cause stuck buttons in this
+ sequence of events:
+
+ 1. type Shift + NumLock to enable PointerKeys
+ 2. type 0/Ins on keypad to emulate Button 1 press
+ → button1 press event to client
+ 3. press and release button 1 on physical mouse
+ → button1 release event to client
+
+ Button 1 on the MD is now stuck and cannot be released.
+
+ Cause:
+ XKB PointerKeys button events are posted through the XTEST pointer device.
+ Once a press is generated, the XTEST device's button is down. The DIX merges
+ the button state of all attached SDs, hence the MD will have a button down
+ while the XTEST device has a button down.
+
+ PointerKey button events are only generated on the master device to avoid
+ duplicate events (see XkbFakeDeviceButton()). If the MD has the
+ lockedPtrButtons bit cleared by a release event on a physical device, no
+ such event is generated when a keyboard device triggers the PointerKey
+ ButtonRelease trigger. Since the event - if generated - is posted through
+ the XTEST pointer device, lack of a generated ButtonRelease event on the
+ XTEST pointer device means the button is never released, resulting in the
+ stuck button observed above.
+
+ Solution:
+ This patch merges the MD's lockedPtrButtons with the one of all attached
+ slave devices on release events. Thus, as long as one attached keyboard has
+ a lockedPtrButtons bit set, this bit is kept in the MD. Once a PointerKey
+ button is released on all keyboards, the matching release event is emulated
+ from the MD through the XTEST pointer device, thus also releasing the button
+ in the DIX.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit 09645864f5a52882eee51c801b3e610d683e7147
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jun 29 13:49:27 2010 +1000
+
+ xkb: Mark switch case fallthrough with comment.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit c7330ecb5d28d7a92d24feb289f7f1812ce055a4
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Wed Jun 30 13:23:14 2010 +1000
+
+ dix: fix up erroneous error message.
+
+ (WW) Device 'device name' has 36 axes, only using first 36.
+ does seem a bit silly.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
+commit dbf249ec6638f0a8dfa4c2286099845aafc8ac88
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Tue Jun 29 10:43:51 2010 +1000
+
+ xkb: remove now obsolete comment.
+
+ Looks like nothing broke from removing the hardcoded CoreProcessPointerEvent
+ call. Whoop. Di. Doo.
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+
commit f028e70ca714f6956e41754f132cb9b8a1e8db63
Author: Keith Packard <keithp@keithp.com>
Date: Wed Jun 30 08:33:55 2010 -0700
@@ -205,6 +624,47 @@ Date: Fri Jun 25 09:48:10 2010 +1000
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
+commit 1884db430a5680e37e94726dff46686e2218d525
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Thu Jun 24 12:52:53 2010 +1000
+
+ Revert "dix: use the event mask of the grab for TryClientEvents."
+
+ Behaviour of earlier X servers was to deliver the ButtonPress event
+ unconditionally, regardless of the actual event mask being set. This is
+ documented in the protocol:
+ "This request establishes a passive grab. In the future, the pointer is
+ actively grabbed as described in GrabPointer, the last-pointer-grab time is
+ set to the time at which the button was pressed (as transmitted in the
+ ButtonPress event), and the ButtonPress event is reported if all of the
+ following conditions are true:
+ <list of conditions, event mask is not one of them>"
+
+ Thus, a GrabButton event will always deliver the button press event, a
+ GrabKey always the key press event, etc. Same goes for XI and XI2.
+
+ Reproducible with a simple client requesting a button grab in the form of:
+ XGrabButton(dpy, AnyButton, AnyModifier, win, True, ButtonReleaseMask,
+ GrabModeAsync, GrabModeAsync, None, None);
+
+ On servers before MPX/XI2, the client will receive a button press and
+ release event. On current servers, the client receives only the release.
+ Clients that expect the press event to be delivered unconditionally.
+
+ XTS Xlib13 XGrabButton 5/39 now passes.
+
+ This reverts commit 48585bd1e3e98db0f3df1ecc68022510216e00cc.
+ Effectively reverts commit 1c612acca8568fcdf9761d23f112adaf4d496f1b as well,
+ the code introduced with 1c612 is not needed anymore.
+
+ Conflicts:
+
+ dix/events.c
+
+ Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+ Acked-by: Daniel Stone <daniel@fooishbar.org>
+ Reviewed-by: Keith Packard <keithp@keithp.com>
+
commit 3b3c77b87070ddcdbb2acb114a81628485e7a129
Author: Tiago Vignatti <tiago.vignatti@Nokia.com>
Date: Wed Jun 23 15:18:04 2010 +0300
diff --git a/debian/changelog b/debian/changelog
index b728f4b..c2ec5b8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,11 +1,12 @@
-xorg-server (2:1.8.99.904-2) UNRELEASED; urgency=low
+xorg-server (2:1.8.99.905-1) UNRELEASED; urgency=low
* Drop recommends on xbase-clients.
* Add xauth to xserver-common recommends.
* Bump Standards-Version to 3.9.0.
* Don't install serverminver, drivers shouldn't use this anymore.
+ * New upstream release candidate.
- -- Julien Cristau <jcristau@debian.org> Fri, 09 Jul 2010 13:20:31 +0100
+ -- Julien Cristau <jcristau@debian.org> Sat, 17 Jul 2010 10:25:47 +0100
xorg-server (2:1.8.99.904-1) experimental; urgency=low
commit a2c13f0d6548310e3cd115cf486d3e43edf23dcc
Author: Keith Packard <keithp@keithp.com>
Date: Wed Jul 14 12:57:29 2010 -0700
Bump to version 1.8.99.905 (1.9 RC5)
Signed-off-by: Keith Packard <keithp@keithp.com>
diff --git a/configure.ac b/configure.ac
index b3b752c..baa0b5c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
dnl Process this file with autoconf to create configure.
AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.8.99.904, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2010-07-01"
+AC_INIT([xorg-server], 1.8.99.905, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2010-07-14"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
commit 0540c46066f938ad5611c56081cfcd8457a9b718
Author: Michel Dänzer <daenzer@vmware.com>
Date: Tue Jul 13 14:56:53 2010 +0200
EXA: Finish access to pixmap if it's prepared at destruction time.
Previously we assumed every pixmap destroyed during a software fallback was
also created during a software fallback and had access prepared, but that's
not always true.
Fixes a server abort
Reported-by: 邓逸昕 <bupt.dengyixin@gmail.com>
Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Acked-by: Maarten Maathuis <madman2003@gmail.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
diff --git a/exa/exa.c b/exa/exa.c
index 118a110..fc15c24 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -435,6 +435,29 @@ exaFinishAccess(DrawablePtr pDrawable, int index)
(*pExaScr->info->FinishAccess) (pPixmap, i);
}
+
+/**
+ * Helper for things common to all schemes when a pixmap is destroyed
+ */
+void
+exaDestroyPixmap(PixmapPtr pPixmap)
+{
+ ExaScreenPriv(pPixmap->drawable.pScreen);
+ int i;
+
+ /* Finish access if it was prepared (e.g. pixmap created during
+ * software fallback)
+ */
+ for (i = 0; i < EXA_NUM_PREPARE_INDICES; i++) {
+ if (pExaScr->access[i].pixmap == pPixmap) {
+ exaFinishAccess(&pPixmap->drawable, i);
+ pExaScr->access[i].pixmap = NULL;
+ break;
+ }
+ }
+}
+
+
/**
* Here begins EXA's GC code.
* Do not ever access the fb/mi layer directly.
diff --git a/exa/exa_classic.c b/exa/exa_classic.c
index 2cfeda5..169ce3a 100644
--- a/exa/exa_classic.c
+++ b/exa/exa_classic.c
@@ -221,9 +221,7 @@ exaDestroyPixmap_classic (PixmapPtr pPixmap)
{
ExaPixmapPriv (pPixmap);
- /* During a fallback we must finish access, but we don't know the index. */
- if (pExaScr->fallback_counter)
- exaFinishAccess(&pPixmap->drawable, -1);
+ exaDestroyPixmap(pPixmap);
if (pExaPixmap->area)
{
diff --git a/exa/exa_driver.c b/exa/exa_driver.c
index abe79ba..a913cfb 100644
--- a/exa/exa_driver.c
+++ b/exa/exa_driver.c
@@ -193,9 +193,7 @@ exaDestroyPixmap_driver (PixmapPtr pPixmap)
{
ExaPixmapPriv (pPixmap);
- /* During a fallback we must finish access, but we don't know the index. */
- if (pExaScr->fallback_counter)
- exaFinishAccess(&pPixmap->drawable, -1);
+ exaDestroyPixmap(pPixmap);
if (pExaPixmap->driverPriv)
pExaScr->info->DestroyPixmap(pScreen, pExaPixmap->driverPriv);
diff --git a/exa/exa_mixed.c b/exa/exa_mixed.c
index 7fa771d..ef20eb5 100644
--- a/exa/exa_mixed.c
+++ b/exa/exa_mixed.c
@@ -245,9 +245,7 @@ exaDestroyPixmap_mixed(PixmapPtr pPixmap)
{
ExaPixmapPriv (pPixmap);
- /* During a fallback we must finish access, but we don't know the index. */
- if (pExaScr->fallback_counter)
- exaFinishAccess(&pPixmap->drawable, -1);
+ exaDestroyPixmap(pPixmap);
if (pExaScr->deferred_mixed_pixmap == pPixmap)
pExaScr->deferred_mixed_pixmap = NULL;
diff --git a/exa/exa_priv.h b/exa/exa_priv.h
index 58d04b0..e5d90d4 100644
--- a/exa/exa_priv.h
+++ b/exa/exa_priv.h
@@ -551,6 +551,9 @@ void
exaFinishAccess(DrawablePtr pDrawable, int index);
void
+exaDestroyPixmap(PixmapPtr pPixmap);
+
+void
exaPixmapDirty(PixmapPtr pPix, int x1, int y1, int x2, int y2);
void
commit d75e8146c414bfd512ba5dbd4a83acb334bbe19b
Author: Keith Packard <keithp@keithp.com>
Date: Mon Jul 12 16:01:34 2010 -0700
Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998
Because some EnterVT code needs to remove it self from the
call chain, we need to fix all of the wrappers to correctly
unwrap/rewrap during the call chain. This is a follow-on to the fix
for bug 27114 in commit 68a9ee8370e6f9b38218376ac92d5130a5b0ef1e.
Signed-off-by: Keith Packard <keithp@keithp.com>
Tested-by: Jesse Barnes <jesse.barnes@intel.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com>
diff --git a/glx/glxdri.c b/glx/glxdri.c
index 32b35db..41482c9 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -866,12 +866,21 @@ static const char dri_driver_path[] = DRI_DRIVER_PATH;
static Bool
glxDRIEnterVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
+ Bool ret;
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
- if (!(*screen->enterVT) (index, flags))
+ scrn->EnterVT = screen->enterVT;
+
+ ret = scrn->EnterVT (index, flags);
+
+ screen->enterVT = scrn->EnterVT;
+ scrn->EnterVT = glxDRIEnterVT;
+
+ if (!ret)
return FALSE;
glxResumeClients();
@@ -882,6 +891,7 @@ glxDRIEnterVT (int index, int flags)
static void
glxDRILeaveVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
@@ -889,7 +899,10 @@ glxDRILeaveVT (int index, int flags)
glxSuspendClients();
- return (*screen->leaveVT) (index, flags);
+ scrn->LeaveVT = screen->leaveVT;
+ (*screen->leaveVT) (index, flags);
+ screen->leaveVT = scrn->LeaveVT;
+ scrn->LeaveVT = glxDRILeaveVT;
}
static void
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 970a51a..c2305ad 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -605,12 +605,21 @@ static const char dri_driver_path[] = DRI_DRIVER_PATH;
static Bool
glxDRIEnterVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
+ Bool ret;
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
- if (!(*screen->enterVT) (index, flags))
+ scrn->EnterVT = screen->enterVT;
+
+ ret = scrn->EnterVT (index, flags);
+
+ screen->enterVT = scrn->EnterVT;
+ scrn->EnterVT = glxDRIEnterVT;
+
+ if (!ret)
return FALSE;
glxResumeClients();
@@ -621,6 +630,7 @@ glxDRIEnterVT (int index, int flags)
static void
glxDRILeaveVT (int index, int flags)
{
+ ScrnInfoPtr scrn = xf86Screens[index];
__GLXDRIscreen *screen = (__GLXDRIscreen *)
glxGetScreen(screenInfo.screens[index]);
@@ -628,7 +638,10 @@ glxDRILeaveVT (int index, int flags)
glxSuspendClients();
- return (*screen->leaveVT) (index, flags);
+ scrn->LeaveVT = screen->leaveVT;
+ (*screen->leaveVT) (index, flags);
+ screen->leaveVT = scrn->LeaveVT;
+ scrn->LeaveVT = glxDRILeaveVT;
}
static void
diff --git a/hw/xfree86/common/xf86VGAarbiter.c b/hw/xfree86/common/xf86VGAarbiter.c
index a58d21a..05cf245 100644
--- a/hw/xfree86/common/xf86VGAarbiter.c
+++ b/hw/xfree86/common/xf86VGAarbiter.c
@@ -523,12 +523,16 @@ static Bool
VGAarbiterEnterVT(int index, int flags)
{
Bool val;
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate(
&pScreen->devPrivates, VGAarbiterScreenKey);
VGAGet();
- val = (*pScreenPriv->EnterVT)(index, flags);
+ pScrn->EnterVT = pScreenPriv->EnterVT;
+ val = (*pScrn->EnterVT)(index, flags);
+ pScreenPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = VGAarbiterEnterVT;
VGAPut();
return val;
}
@@ -536,12 +540,16 @@ VGAarbiterEnterVT(int index, int flags)
static void
VGAarbiterLeaveVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
VGAarbiterScreenPtr pScreenPriv = (VGAarbiterScreenPtr)dixLookupPrivate(
&pScreen->devPrivates, VGAarbiterScreenKey);
VGAGet();
+ pScrn->LeaveVT = pScreenPriv->LeaveVT;
(*pScreenPriv->LeaveVT)(index, flags);
+ pScreenPriv->LeaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = VGAarbiterLeaveVT;
VGAPut();
}
diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c
index d2a8f12..8b27b84 100644
--- a/hw/xfree86/common/xf86cmap.c
+++ b/hw/xfree86/common/xf86cmap.c
@@ -466,11 +466,17 @@ CMapInstallColormap(ColormapPtr pmap)
static Bool
CMapEnterVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
+ Bool ret;
CMapScreenPtr pScreenPriv = (CMapScreenPtr)dixLookupPrivate(
&pScreen->devPrivates, CMapScreenKey);
- if((*pScreenPriv->EnterVT)(index, flags)) {
+ pScrn->EnterVT = pScreenPriv->EnterVT;
+ ret = (*pScreenPriv->EnterVT)(index, flags);
+ pScreenPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = CMapEnterVT;
+ if(ret) {
if(GetInstalledmiColormap(pScreen))
CMapReinstallMap(GetInstalledmiColormap(pScreen));
return TRUE;
diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
index 948f82d..c1d3199 100644
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -1229,11 +1229,15 @@ xf86XVQueryAdaptors(
static Bool
xf86XVEnterVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
Bool ret;
+ pScrn->EnterVT = ScreenPriv->EnterVT;
ret = (*ScreenPriv->EnterVT)(index, flags);
+ ScreenPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = xf86XVEnterVT;
if(ret) WalkTree(pScreen, xf86XVReputAllVideo, 0);
@@ -1243,6 +1247,7 @@ xf86XVEnterVT(int index, int flags)
static void
xf86XVLeaveVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
XvScreenPtr pxvs = GET_XV_SCREEN(pScreen);
XF86XVScreenPtr ScreenPriv = GET_XF86XV_SCREEN(pScreen);
@@ -1274,7 +1279,10 @@ xf86XVLeaveVT(int index, int flags)
}
}
+ pScrn->LeaveVT = ScreenPriv->LeaveVT;
(*ScreenPriv->LeaveVT)(index, flags);
+ ScreenPriv->LeaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = xf86XVLeaveVT;
}
static void
diff --git a/hw/xfree86/shadowfb/shadow.c b/hw/xfree86/shadowfb/shadow.c
index 9773981..344f1ab 100644
--- a/hw/xfree86/shadowfb/shadow.c
+++ b/hw/xfree86/shadowfb/shadow.c
@@ -216,9 +216,14 @@ static Bool
ShadowEnterVT(int index, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[index];
+ Bool ret;
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(pScrn->pScreen);
- if((*pPriv->EnterVT)(index, flags)) {
+ pScrn->EnterVT = pPriv->EnterVT;
+ ret = (*pPriv->EnterVT)(index, flags);
+ pPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = ShadowEnterVT;
+ if(ret) {
pPriv->vtSema = TRUE;
return TRUE;
}
@@ -229,11 +234,15 @@ ShadowEnterVT(int index, int flags)
static void
ShadowLeaveVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ShadowScreenPtr pPriv = GET_SCREEN_PRIVATE(xf86Screens[index]->pScreen);
pPriv->vtSema = FALSE;
+ pScrn->LeaveVT = pPriv->LeaveVT;
(*pPriv->LeaveVT)(index, flags);
+ pPriv->LeaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = ShadowLeaveVT;
}
/**********************************************************/
diff --git a/hw/xfree86/xaa/xaaInit.c b/hw/xfree86/xaa/xaaInit.c
index ec55632..11443a6 100644
--- a/hw/xfree86/xaa/xaaInit.c
+++ b/hw/xfree86/xaa/xaaInit.c
@@ -508,16 +508,23 @@ XAAChangeWindowAttributes (WindowPtr pWin, unsigned long mask)
static Bool
XAAEnterVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
+ Bool ret;
ScreenPtr pScreen = screenInfo.screens[index];
XAAScreenPtr pScreenPriv =
(XAAScreenPtr)dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
- return((*pScreenPriv->EnterVT)(index, flags));
+ pScrn->EnterVT = pScreenPriv->EnterVT;
+ ret = ((*pScreenPriv->EnterVT)(index, flags));
+ pScreenPriv->EnterVT = pScrn->EnterVT;
+ pScrn->EnterVT = XAAEnterVT;
+ return ret;
}
static void
XAALeaveVT(int index, int flags)
{
+ ScrnInfoPtr pScrn = xf86Screens[index];
ScreenPtr pScreen = screenInfo.screens[index];
XAAScreenPtr pScreenPriv =
(XAAScreenPtr)dixLookupPrivate(&pScreen->devPrivates, XAAScreenKey);
@@ -528,7 +535,10 @@ XAALeaveVT(int index, int flags)
infoRec->NeedToSync = FALSE;
}
+ pScrn->LeaveVT = pScreenPriv->LeaveVT;
(*pScreenPriv->LeaveVT)(index, flags);
+ pScreenPriv->LeaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = XAALeaveVT;
}
typedef struct {
commit 9d8ec712a67ce71ea7408f0626cda7e0fa7c3bac
Author: Jeremy Huddleston <jeremyhu@apple.com>
Date: Tue Jul 13 08:56:36 2010 -0700
XQuartz: Bump bundle version to 2.6.0 for xorg-server-1.9.0 and X11R7.6
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
diff --git a/hw/xquartz/bundle/Info.plist.cpp b/hw/xquartz/bundle/Info.plist.cpp
index 91c8c03..85b439a 100644
--- a/hw/xquartz/bundle/Info.plist.cpp
+++ b/hw/xquartz/bundle/Info.plist.cpp
@@ -19,9 +19,9 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
- <string>2.5.1</string>
+ <string>2.6.0</string>
<key>CFBundleVersion</key>
- <string>2.5.1</string>
+ <string>2.6.0</string>
<key>CFBundleSignature</key>
<string>x11a</string>
<key>CSResourcesFileMapped</key>
Reply to: