From a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9 Mon Sep 17 00:00:00 2001 From: marha Date: Sat, 29 Nov 2014 12:40:08 +0100 Subject: fontconfig libX11 libxcb libxcb/xcb-proto mesa xserver xkbcomp xkeyboard-config git update 29 Nov 2014 xserver commit c52a2b1ebad56820af932dfbc871701a8b04fd9c libxcb commit bbca7b82f803fa13fd30a2891ec06f2a213a28c2 libxcb/xcb-proto commit 691d2b97e5989d6d7006304d81bd8fa128477ca1 xkeyboard-config commit b664d7fb8aab9b0f834dd9c81d273c7809561b34 libX11 commit f3831dde6972e4da9e018c6a5f4013d8756a5e78 xkbcomp commit 1e8ee9d0aad072f04186df84752f5636340574e0 fontconfig commit b732bf057f4b3ec3bac539803005e9c42d056b2a mesa commit 67c498086d0858a94d53ebb6921cfda847250368 --- xorg-server/composite/compalloc.c | 8 ++++---- xorg-server/composite/compext.c | 4 ++-- xorg-server/composite/compinit.c | 21 ++++++++++++++++++++- xorg-server/composite/compint.h | 3 ++- xorg-server/composite/compoverlay.c | 4 ++-- xorg-server/composite/compwindow.c | 7 ++++--- 6 files changed, 34 insertions(+), 13 deletions(-) (limited to 'xorg-server/composite') diff --git a/xorg-server/composite/compalloc.c b/xorg-server/composite/compalloc.c index dfbff06ca..8daded0a5 100644 --- a/xorg-server/composite/compalloc.c +++ b/xorg-server/composite/compalloc.c @@ -156,7 +156,7 @@ compRedirectWindow(ClientPtr pClient, WindowPtr pWin, int update) return BadAccess; /* - * Allocate per-client per-window structure + * Allocate per-client per-window structure * The client *could* allocate multiple, but while supported, * it is not expected to be common */ @@ -353,7 +353,7 @@ compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update) if (ccw->update == CompositeRedirectManual) return BadAccess; /* - * Allocate per-client per-window structure + * Allocate per-client per-window structure * The client *could* allocate multiple, but while supported, * it is not expected to be common */ @@ -401,7 +401,7 @@ compRedirectSubwindows(ClientPtr pClient, WindowPtr pWin, int update) return BadAlloc; if (ccw->update == CompositeRedirectManual) { csw->update = CompositeRedirectManual; - /* + /* * tell damage extension that damage events for this client are * critical output */ @@ -430,7 +430,7 @@ compFreeClientSubwindows(WindowPtr pWin, XID id) *prev = ccw->next; if (ccw->update == CompositeRedirectManual) { - /* + /* * tell damage extension that damage events for this client are * critical output */ diff --git a/xorg-server/composite/compext.c b/xorg-server/composite/compext.c index fcfc3496a..f1a825573 100644 --- a/xorg-server/composite/compext.c +++ b/xorg-server/composite/compext.c @@ -299,7 +299,7 @@ ProcCompositeGetOverlayWindow(ClientPtr client) VERIFY_WINDOW(pWin, stuff->window, client, DixGetAttrAccess); pScreen = pWin->drawable.pScreen; - /* + /* * Create an OverlayClient structure to mark this client's * interest in the overlay window */ @@ -351,7 +351,7 @@ ProcCompositeReleaseOverlayWindow(ClientPtr client) REQUEST_SIZE_MATCH(xCompositeReleaseOverlayWindowReq); VERIFY_WINDOW(pWin, stuff->window, client, DixGetAttrAccess); - /* + /* * Has client queried a reference to the overlay window * on this screen? If not, generate an error. */ diff --git a/xorg-server/composite/compinit.c b/xorg-server/composite/compinit.c index 111c16e5d..3ac075a46 100644 --- a/xorg-server/composite/compinit.c +++ b/xorg-server/composite/compinit.c @@ -78,6 +78,7 @@ compCloseScreen(ScreenPtr pScreen) pScreen->PositionWindow = cs->PositionWindow; pScreen->GetImage = cs->GetImage; + pScreen->GetSpans = cs->GetSpans; pScreen->SourceValidate = cs->SourceValidate; free(cs); @@ -150,6 +151,21 @@ compGetImage(DrawablePtr pDrawable, pScreen->GetImage = compGetImage; } +static void +compGetSpans(DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, int *pwidth, + int nspans, char *pdstStart) +{ + ScreenPtr pScreen = pDrawable->pScreen; + CompScreenPtr cs = GetCompScreen(pScreen); + + pScreen->GetSpans = cs->GetSpans; + if (pDrawable->type == DRAWABLE_WINDOW) + compPaintChildrenToWindow((WindowPtr) pDrawable); + (*pScreen->GetSpans) (pDrawable, wMax, ppt, pwidth, nspans, pdstStart); + cs->GetSpans = pScreen->GetSpans; + pScreen->GetSpans = compGetSpans; +} + static void compSourceValidate(DrawablePtr pDrawable, int x, int y, @@ -193,7 +209,7 @@ compFindVisuallessDepth(ScreenPtr pScreen, int d) } } /* - * If there isn't one, then it's gonna be hard to have + * If there isn't one, then it's gonna be hard to have * an associated visual */ return 0; @@ -432,6 +448,9 @@ compScreenInit(ScreenPtr pScreen) cs->GetImage = pScreen->GetImage; pScreen->GetImage = compGetImage; + cs->GetSpans = pScreen->GetSpans; + pScreen->GetSpans = compGetSpans; + cs->SourceValidate = pScreen->SourceValidate; pScreen->SourceValidate = compSourceValidate; diff --git a/xorg-server/composite/compint.h b/xorg-server/composite/compint.h index 56b76c540..09241f2a2 100644 --- a/xorg-server/composite/compint.h +++ b/xorg-server/composite/compint.h @@ -76,7 +76,7 @@ /* * enable this for debugging - + #define COMPOSITE_DEBUG */ @@ -168,6 +168,7 @@ typedef struct _CompScreen { CompOverlayClientPtr pOverlayClients; GetImageProcPtr GetImage; + GetSpansProcPtr GetSpans; SourceValidateProcPtr SourceValidate; } CompScreenRec, *CompScreenPtr; diff --git a/xorg-server/composite/compoverlay.c b/xorg-server/composite/compoverlay.c index 7932dda8d..20c860d5f 100644 --- a/xorg-server/composite/compoverlay.c +++ b/xorg-server/composite/compoverlay.c @@ -52,7 +52,7 @@ #include "panoramiXsrv.h" #endif -/* +/* * Delete the given overlay client list element from its screen list. */ void @@ -110,7 +110,7 @@ compCreateOverlayClient(ScreenPtr pScreen, ClientPtr pClient) pOc->pNext = cs->pOverlayClients; cs->pOverlayClients = pOc; - /* + /* * Create a resource for this element so it can be deleted * when the client goes away. */ diff --git a/xorg-server/composite/compwindow.c b/xorg-server/composite/compwindow.c index 9a6b2dae8..77bdfa23c 100644 --- a/xorg-server/composite/compwindow.c +++ b/xorg-server/composite/compwindow.c @@ -567,10 +567,11 @@ compCreateWindow(WindowPtr pWin) if (pWin->parent && ret) { CompSubwindowsPtr csw = GetCompSubwindows(pWin->parent); CompClientWindowPtr ccw; + PixmapPtr parent_pixmap = (*pScreen->GetWindowPixmap)(pWin->parent); + PixmapPtr window_pixmap = (*pScreen->GetWindowPixmap)(pWin); - (*pScreen->SetWindowPixmap) (pWin, - (*pScreen->GetWindowPixmap) (pWin-> - parent)); + if (window_pixmap != parent_pixmap) + (*pScreen->SetWindowPixmap) (pWin, parent_pixmap); if (csw) for (ccw = csw->clients; ccw; ccw = ccw->next) compRedirectWindow(clients[CLIENT_ID(ccw->id)], -- cgit v1.2.3