Go to file
Ville Syrjälä a5dc3531e1 Revert "composite: Convert compWindowUpdate to use TraverseTree"
TraverseTree visits the parent before the children. When performing
the automatic redirection updates, the children must be visited before
the parent.

If there are automatically redirected windows on multiple levels of the
tree, updating the parents before the children would cause the parent
updates to use stale data for areas covered by the children. Also
updating the damaged children would re-damage the parent, which would
cause additional walks over the tree.

In the worst case with an unbroken chain of automatically redirected
subwindows, all of which are damaged, only the leaf window would be
properly updated on the first round. Then it's parent would be properly
updated on the second round, and so on. And on every round all of the
ancestor windows would be updated as well, but with stale data.
So with N damaged windows you would end up with (N^2+N)/2 updates,
instead of the expected N.

This reverts commit 648c8871c9.

Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2011-01-05 11:56:56 -08:00
composite Revert "composite: Convert compWindowUpdate to use TraverseTree" 2011-01-05 11:56:56 -08:00
config udev: Fix removing of the wake up handler 2010-12-31 12:52:51 +00:00
damageext Set DamageSetReportAfterOp to true for the damage extension 2010-11-10 15:51:27 -08:00
dbe miDbe window priv priv is pre-allocated, don't use dixSetPrivate (bug 28639) 2010-07-02 12:30:24 -04:00
dix DIX: Reset window properties when freeing them 2010-12-31 12:52:50 +00:00
doc Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
exa Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
fb Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00
glx glx: warning fixes 2010-12-31 12:52:24 +00:00
hw Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
include Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
m4 remove dolt 2010-09-30 17:44:59 -07:00
mi Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
miext Call SourceValidate even if src == dst 2011-01-05 11:56:42 -08:00
os os: always check if client is local when connection is accepted 2010-12-31 12:52:51 +00:00
randr randr: check for virtual size limits before set crtc 2010-12-20 00:46:32 -08:00
record record: Prevent a crash on recording client disconnect. 2010-06-22 11:43:36 -07:00
render Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
test include: let BitIsOn() return a boolean value. 2010-11-26 09:59:24 +10:00
Xext X Sync Cleanups 2011-01-05 08:41:30 -08:00
xfixes Sun's copyrights now belong to Oracle 2010-12-07 11:10:35 -08:00
Xi Input: Set client error value for invalid mask bits 2010-12-31 12:36:44 +00:00
xkb Convert existing Xprintf style calls to asprintf style 2010-12-07 11:10:35 -08:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
autogen.sh autogen.sh: Pass --force to autoreconf 2008-07-22 16:55:26 +03:00
configure.ac Remove SCO support 2010-12-20 12:11:11 -05:00
COPYING Add asprintf() implementation for platforms without it 2010-12-07 11:10:35 -08:00
cpprules.in xfree86: Set a saner search path for xorg.conf.d 2010-04-08 15:21:01 +10:00
fix-miregion Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-miregion-private Change region implementation names to eliminate the 'mi' prefix 2010-06-05 17:47:32 -07:00
fix-patch-whitespace Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
fix-region Rename region macros to eliminate screen argument 2010-06-05 18:59:00 -07:00
Makefile.am remove dolt 2010-09-30 17:44:59 -07:00
README packaging: provide a default README file #24206 2010-01-27 14:00:17 -08:00
xorg-server.m4 macros: use PKG_CONFIG variable rather than executable name 2010-01-07 12:57:23 -08:00
xorg-server.pc.in config: declare xserver private dependencies in xorg-server.pc 2010-06-22 11:34:47 -07:00

					X Server

The X server accepts requests from client applications to create windows,
which are (normally rectangular) "virtual screens" that the client program
can draw into.

Windows are then composed on the actual screen by the X server
(or by a separate composite manager) as directed by the window manager,
which usually communicates with the user via graphical controls such as buttons
and draggable titlebars and borders.

For a comprehensive overview of X Server and X Window System, consult the
following article:
http://en.wikipedia.org/wiki/X_server

All questions regarding this software should be directed at the
Xorg mailing list:

        http://lists.freedesktop.org/mailman/listinfo/xorg

Please submit bug reports to the Xorg bugzilla:

        https://bugs.freedesktop.org/enter_bug.cgi?product=xorg

The master development code repository can be found at:

        git://anongit.freedesktop.org/git/xorg/xserver

        http://cgit.freedesktop.org/xorg/xserver

For patch submission instructions, see:

	http://www.x.org/wiki/Development/Documentation/SubmittingPatches

For more information on the git code manager, see:

        http://wiki.x.org/wiki/GitPage