diff options
author | marha <marha@users.sourceforge.net> | 2014-11-29 12:40:08 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-11-29 12:40:08 +0100 |
commit | a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9 (patch) | |
tree | 3875aa5d80808dfe3c52035a4148384d7090fb8a /xorg-server/composite | |
parent | d6d5581d5fba846c8476ad4d593da662306765d7 (diff) | |
download | vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.tar.gz vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.tar.bz2 vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.zip |
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
Diffstat (limited to 'xorg-server/composite')
-rw-r--r-- | xorg-server/composite/compalloc.c | 8 | ||||
-rw-r--r-- | xorg-server/composite/compext.c | 4 | ||||
-rw-r--r-- | xorg-server/composite/compinit.c | 21 | ||||
-rw-r--r-- | xorg-server/composite/compint.h | 3 | ||||
-rw-r--r-- | xorg-server/composite/compoverlay.c | 4 | ||||
-rw-r--r-- | xorg-server/composite/compwindow.c | 7 |
6 files changed, 34 insertions, 13 deletions
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); @@ -151,6 +152,21 @@ compGetImage(DrawablePtr pDrawable, } 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, int width, int height, unsigned int subWindowMode) @@ -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)], |