# This file contains the list of X11 calls that Wine uses and which must be
# protected by a critical section for multi-threaded use.
#
# To add a new call, put it on this list and run tools/make_X11wrappers.
# Also read the comments at the top of tools/make_X11wrappers.
#
XActivateScreenSaver
XAddPixel
XAllocClassHint
XAllocColor
XAllocColorCells
XAllocSizeHints
XAllocWMHints
XBell
XChangeGC
XChangeKeyboardControl
XChangeProperty
XChangeWindowAttributes
XCheckTypedEvent
XCheckTypedWindowEvent
XCheckWindowEvent
XClipBox
XConvertSelection
XCopyArea
XCopyColormapAndFree
XCopyPlane
XCreateBitmapFromData
XCreateColormap
XCreateFontCursor
XCreateGC
XCreateImage
XCreatePixmap
XCreatePixmapCursor
XCreateRegion
XCreateWindow
XDefineCursor
XDeleteContext
XDeleteProperty
XDestroyImage
XDestroyRegion
XDestroyWindow
XDisplayKeycodes
XDrawArc
XDrawLine
XDrawLines
XDrawPoint
XDrawRectangle
XDrawSegments
XDrawString16
XDrawText16
XEmptyRegion
XEqualRegion
XFillArc
XFillPolygon
XFillRectangle
XFindContext
XFlush
XFree
XFreeColormap
XFreeColors
XFreeCursor
XFreeFont
XFreeFontNames
XFreeGC
XFreeModifiermap
XFreePixmap
XGetAtomName
XGetFontProperty
XGetGeometry
XGetImage
XGetInputFocus
XGetKeyboardControl
XGetKeyboardMapping
XGetModifierMapping
XGetScreenSaver
XGetSelectionOwner
XGetVisualInfo
XGetWMHints
XGetWMSizeHints
XGetWindowAttributes
XGetWindowProperty
XGrabKeyboard
XGrabPointer
XGrabServer
XIconifyWindow
XInitThreads
XInstallColormap
XInternAtom
XIntersectRegion
XKeycodeToKeysym
XKeysymToKeycode
XKeysymToString
XListDepths
XListFonts
XListPixmapFormats
XLoadQueryFont
XLookupKeysym
XLookupString
XMapWindow
XNextEvent
XOffsetRegion
XOpenDisplay
XOpenIM
XParseGeometry
XPending
XPointInRegion
XPolygonRegion
XPutBackEvent
XPutImage
XQueryColor
XQueryKeymap
XQueryPointer
XQueryTree
XReconfigureWMWindow
XRectInRegion
XRefreshKeyboardMapping
XResetScreenSaver
XResourceManagerString
XRestackWindows
XSaveContext
XSendEvent
XSetArcMode
XSetBackground
XSetClassHint
XSetClipMask
XSetClipOrigin
XSetClipRectangles
XSetDashes
XSetFillStyle
XSetForeground
XSetFunction
XSetGraphicsExposures
XSetIconName
XSetInputFocus
XSetLineAttributes
XSetRegion
XSetScreenSaver
XSetSelectionOwner
XSetSubwindowMode
XSetTransientForHint
XSetWindowColormap
XSetWMHints
XSetWMProperties
XSetWMProtocols
XSetWMSizeHints
XShmAttach
XShmCreateImage
XShmCreatePixmap
XShmDetach
XShmGetImage
XShmPixmapFormat
XShmPutImage
XShmQueryExtension
XShmQueryVersion
XShrinkRegion
XStoreColor
XStoreName
XStringListToTextProperty
XSubImage
XSubtractRegion
XSync
XSynchronize
XTextExtents16
XTextWidth16
XUngrabKeyboard
XUngrabPointer
XUngrabServer
XUninstallColormap
XUnionRectWithRegion
XUnionRegion
XUniqueContext
XUnmapWindow
XWarpPointer
XXorRegion
XpmAttributesSize
XpmCreatePixmapFromData
XrmGetFileDatabase
XrmGetResource
XrmGetStringDatabase
XrmInitialize
XrmMergeDatabases
XrmParseCommand
XrmUniqueQuark
_XInitImageFuncPtrs
XF86DGAQueryExtension
XF86DGASetViewPort
XF86DGAInstallColormap
XF86DGAViewPortChanged
XF86DGADirectVideo
XF86DGAQueryVersion
XF86DGAQueryDirectVideo
XF86DGAGetVideo
XF86DGAGetViewPortSize
XF86VidModeQueryVersion
XF86VidModeQueryExtension
XF86VidModeGetModeLine
XF86VidModeGetAllModeLines
XF86VidModeAddModeLine
XF86VidModeDeleteModeLine
XF86VidModeModModeLine
XF86VidModeValidateModeLine
XF86VidModeSwitchMode
XF86VidModeSwitchToMode
XF86VidModeLockModeSwitch
XF86VidModeGetMonitor
XF86VidModeGetViewPort
XF86VidModeSetViewPort
XDGAQueryExtension
XDGAQueryVersion
XDGAQueryModes
XDGASetMode
XDGAOpenFramebuffer
XDGACloseFramebuffer
XDGASetViewport
XDGAInstallColormap
XDGACreateColormap
XDGASelectInput
XDGAFillRectangle
XDGACopyArea
XDGACopyTransparentArea
XDGAGetViewportStatus
XDGASync
XDGASetClientVersion
XDGAChangePixmapMode
XDGAKeyEventToXKeyEvent
