Find a file
Jeremy Huddleston Sequoia 0f2f8e3a10 rootless: Fix Glyphs damage bounding box origin and coordinate space
The glyph bounding box in RootlessGlyphs is computed in
drawable-relative (window-local) coordinates, but RootlessDamageBox
expects global (screen) coordinates.  Without translating by
drawable.x/y, the damage region often fell outside the window's
borderClip and was silently discarded by RootlessDamageRegion.

RootlessGlyphs accumulated glyph positions starting from (xSrc, ySrc)
instead of (0, 0).  The xSrc/ySrc parameters are the source picture
reference point, not destination offsets.  Every standard Glyphs
implementation (fbGlyphs, miGlyphs) starts position accumulation
from (0, 0) and builds up destination coordinates by adding each
GlyphList's xOff/yOff deltas.

Starting from xSrc shifted the entire damage bounding box by
(xSrc, ySrc), causing it to miss the actual rendered region.  For
typical text rendering where xSrc equals the destination x position,
this doubled the offset, placing the damage box well outside the
window's borderClip and causing RootlessDamageRegion to silently
discard it.

Fixes [1/2]: https://github.com/XQuartz/XQuartz/issues/323

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
2026-03-21 20:11:16 -07:00
.gitlab-ci ci: Install libxcvt from git 2021-08-06 11:29:29 +00:00
composite composite: initialize border clip even when pixmap alloc fails 2025-02-25 19:36:29 +01:00
config config: add a quirk for Apple Silicon appledrm 2024-12-02 16:11:51 +00:00
damageext More missing version checks in SProcs 2021-08-08 12:43:01 +00:00
dbe meson: hide C API if Xorg is disabled (like autotools) 2021-03-11 00:22:36 +00:00
dix rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
doc meson: Implement developer documentation build 2021-08-20 10:26:07 +00:00
dri3 meson: hide C API if Xorg is disabled (like autotools) 2021-03-11 00:22:36 +00:00
exa rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
fb rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
glamor rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
glx glx: Initialize glx even if there are currently no screens attached 2026-03-20 22:17:12 -07:00
hw Set thread priorities to user interactive or user initiated as appropriate 2026-03-20 22:17:12 -07:00
include rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
m4 Add ax_pthread.m4 to m4/ 2016-05-29 19:20:51 -07:00
man Xserver.man: correct list of available authorization protocols 2025-06-12 18:08:25 -07:00
mi rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
miext rootless: Fix Glyphs damage bounding box origin and coordinate space 2026-03-21 20:11:16 -07:00
os Revert "os/WaitFor: Check timers on every iteration" 2026-03-20 22:17:12 -07:00
present rootless: Use screen_x and screen_y instead of pixmap pointer hacks 2026-03-20 22:17:12 -07:00
pseudoramiX Unvalidated lengths 2017-10-10 23:33:34 +02:00
randr randr: Initialize RandR even if there are currently no screens attached 2026-03-20 22:17:12 -07:00
record record: Check for overflow in RecordSanityCheckRegisterClients() 2025-06-17 15:06:30 +02:00
render glamor: fix CbCr format handling 2025-06-30 17:13:16 +03:00
test tests: Add missing files to Makefile build 2025-10-28 17:00:57 +01:00
Xext Xext/xtest: avoid null dereference in ProcXTestFakeInput() 2025-10-08 17:54:33 +02:00
xfixes xfixes: Check request length for SetClientDisconnectMode 2025-06-17 15:06:09 +02:00
Xi Xi: handle allocation failure in add_master_func() 2025-10-08 17:54:33 +02:00
xkb xkb: Prevent overflow in XkbSetCompatMap() 2025-10-28 14:15:35 +01:00
.appveyor.yml Drop DMX DDX 2021-09-07 09:34:31 +00:00
.dir-locals.el .dir-locals.el: Add missing final newline 2019-10-01 17:05:28 +00:00
.gitignore .gitignore: Add new autotools file 'test-driver' 2014-04-21 13:41:42 -07:00
.gitlab-ci.yml .gitlab-ci: Use meson instead of ninja for running the tests 2025-06-30 11:29:21 +02:00
.travis.yml travis: Add OSX meson build to matrix 2019-05-02 15:42:58 +00:00
autogen.sh autogen: Set a default subject prefix for patches 2016-02-08 17:41:38 -05:00
configure.ac xserver 21.1.21 2025-11-24 18:03:35 +01:00
COPYING os: Use EVP APIs when building with OpenSSL 3 2025-10-08 17:54:33 +02:00
devbook.am doc: Create a script to filter xmlto output 2015-01-05 14:24:06 -08:00
docbook.am docbook.am: embed css styles inside the HTML HEAD element 2011-09-21 14:07:49 -07:00
Makefile.am Makefile.am: add SECURITY.md to EXTRA_DIST 2025-11-30 17:21:49 +00:00
manpages.am man: Fix automake seddery 2018-05-08 12:15:30 -04:00
meson.build xserver 21.1.21 2025-11-24 18:03:35 +01:00
meson_options.txt meson: Provide options to set CFBundleVersion and CFBundleVersionString in XQuartz 2022-06-19 23:10:48 -07:00
README.md Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
SECURITY.md Create a SECURITY.md file 2025-11-30 17:21:49 +00:00
xorg-server.m4 xorg-server.m4: just all cflags instead of just sdkdir 2018-09-20 20:12:24 +01:00
xorg-server.pc.in pkgconfig files: Add URL 2025-04-08 10:16:56 +02:00
xserver.ent.in doc: relocate xserver.ent in the package root directory 2011-05-14 11:22:26 -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: https://en.wikipedia.org/wiki/X_server

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

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

The primary development code repository can be found at:

https://gitlab.freedesktop.org/xorg/xserver

For patch submission instructions, see:

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

As with other projects hosted on freedesktop.org, X.Org follows its Code of Conduct, based on the Contributor Covenant. Please conduct yourself in a respectful and civilized manner when using the above mailing lists, bug trackers, etc:

https://www.freedesktop.org/wiki/CodeOfConduct