From 61d5cd0b75acc0ca3bfe2b6addc052c4aae8e6f2 Mon Sep 17 00:00:00 2001 From: Mike Gabriel Date: Fri, 21 Apr 2017 12:07:37 +0200 Subject: Revert "NXpicturestr_PictSolidFill.h: Drop file and revert db8705. Not an issue anymore nowadays." This reverts commit 6c8c950258cf0da0cf24c5e80c2216914ac282a4. Fixes ArcticaProject/nx-libs#433. This patch is still a candidate for being re-implemented without extending the _PictSolidFill struct, but for now, we'll have to re-introduce commit db8705 for the sake of having fonts readable after resumption of remote NX sessions. --- nx-X11/programs/Xserver/hw/nxagent/NXpicture.c | 4 ++ .../hw/nxagent/NXpicturestr_PictSolidFill.h | 63 ++++++++++++++++++++++ nx-X11/programs/Xserver/hw/nxagent/Render.c | 16 ++++-- nx-X11/programs/Xserver/render/picturestr.h | 4 ++ 4 files changed, 82 insertions(+), 5 deletions(-) create mode 100644 nx-X11/programs/Xserver/hw/nxagent/NXpicturestr_PictSolidFill.h diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c b/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c index c6cf31389..4ea7d2d73 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXpicture.c @@ -294,6 +294,10 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error) } pPicture->pSourcePict->type = SourcePictTypeSolidFill; pPicture->pSourcePict->solidFill.color = xRenderColorToCard32(*color); + pPicture->pSourcePict->solidFill.fullColor.alpha=color->alpha; + pPicture->pSourcePict->solidFill.fullColor.red=color->red; + pPicture->pSourcePict->solidFill.fullColor.green=color->green; + pPicture->pSourcePict->solidFill.fullColor.blue=color->blue; return pPicture; } diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXpicturestr_PictSolidFill.h b/nx-X11/programs/Xserver/hw/nxagent/NXpicturestr_PictSolidFill.h new file mode 100644 index 000000000..9cd73db5c --- /dev/null +++ b/nx-X11/programs/Xserver/hw/nxagent/NXpicturestr_PictSolidFill.h @@ -0,0 +1,63 @@ +/**************************************************************************/ +/* */ +/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */ +/* Copyright (c) 2008-2014 Oleksandr Shneyder */ +/* Copyright (c) 2011-2016 Mike Gabriel */ +/* Copyright (c) 2014-2016 Mihai Moldovan */ +/* Copyright (c) 2014-2016 Ulrich Sibiller */ +/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */ +/* */ +/* NXAGENT, NX protocol compression and NX extensions to this software */ +/* are copyright of the aforementioned persons and companies. */ +/* */ +/* Redistribution and use of the present software is allowed according */ +/* to terms specified in the file LICENSE which comes in the source */ +/* distribution. */ +/* */ +/* All rights reserved. */ +/* */ +/* NOTE: This software has received contributions from various other */ +/* contributors, only the core maintainers and supporters are listed as */ +/* copyright holders. Please contact us, if you feel you should be listed */ +/* as copyright holder, as well. */ +/* */ +/**************************************************************************/ + +/* + * $Id: picturestr.h,v 1.15 2005/12/09 18:35:21 ajax Exp $ + * + * Copyright © 2000 SuSE, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of SuSE not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. SuSE makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + * + * SuSE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE + * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Keith Packard, SuSE, Inc. + */ + +/* this header file gets included into Xserver/render/picturestr.h */ + +#ifndef NX_PICTURESTR_PICTSOLIDFILL_H +#define NX_PICTURESTR_PICTSOLIDFILL_H 1 + + +typedef struct _PictSolidFill { + unsigned int type; + CARD32 color; + xRenderColor fullColor; +} PictSolidFill, *PictSolidFillPtr; + +#endif /* NX_PICTURESTR_PICTSOLIDFILL_H */ diff --git a/nx-X11/programs/Xserver/hw/nxagent/Render.c b/nx-X11/programs/Xserver/hw/nxagent/Render.c index bab6b7989..753134eb3 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Render.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c @@ -2662,11 +2662,17 @@ void nxagentReconnectPicture(void * p0, XID x1, void *p2) #endif } - if (!pForm) - { - *pBool = False; - - return; + if (!pForm && pPicture->pSourcePict) + { + /*possible we need to add support for other picture types, for example gradients...*/ + switch(pPicture->pSourcePict->type) + { + case SourcePictTypeSolidFill: + nxagentPicturePriv(pPicture) -> picture = XRenderCreateSolidFill(nxagentDisplay, + (const XRenderColor*) &pPicture->pSourcePict->solidFill.fullColor); + break; + } + return; } #ifdef TEST diff --git a/nx-X11/programs/Xserver/render/picturestr.h b/nx-X11/programs/Xserver/render/picturestr.h index 7ce831c4b..f5c367bb4 100644 --- a/nx-X11/programs/Xserver/render/picturestr.h +++ b/nx-X11/programs/Xserver/render/picturestr.h @@ -65,10 +65,14 @@ typedef struct pixman_transform PictTransform, *PictTransformPtr; #define SourcePictTypeRadial 2 #define SourcePictTypeConical 3 +#ifdef NXAGENT_SERVER +#include "../hw/nxagent/NXpicturestr_PictSolidFill.h" +#else typedef struct _PictSolidFill { unsigned int type; CARD32 color; } PictSolidFill, *PictSolidFillPtr; +#endif /* NXAGENT_SERVER */ typedef struct _PictGradientStop { xFixed x; -- cgit v1.2.3