aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/mi
diff options
context:
space:
mode:
authorMihai Moldovan <ionic@ionic.de>2016-06-25 01:35:40 +0200
committerMihai Moldovan <ionic@ionic.de>2016-06-25 01:35:40 +0200
commit975511c875674f097bbd2be33fa947a48d8c77c6 (patch)
tree207bba2c48054f551f19ed5aa89b9dd9616b8c60 /nx-X11/programs/Xserver/mi
parent9df153668423af868d0df739188a772fbc3356c6 (diff)
parenta5befd4e20813910022ed771cb599f15bbf4664d (diff)
downloadnx-libs-975511c875674f097bbd2be33fa947a48d8c77c6.tar.gz
nx-libs-975511c875674f097bbd2be33fa947a48d8c77c6.tar.bz2
nx-libs-975511c875674f097bbd2be33fa947a48d8c77c6.zip
Merge branch 'sunweaver-pr/hw-nxagent-drop-duplicate-Xserver-code_disable-Xserver-code-and-include-in-nxagent' into arctica-3.6.x
Attributes GH PR #120: https://github.com/ArcticaProject/nx-libs/pull/120
Diffstat (limited to 'nx-X11/programs/Xserver/mi')
-rw-r--r--nx-X11/programs/Xserver/mi/Imakefile138
-rw-r--r--nx-X11/programs/Xserver/mi/miexpose.c11
-rw-r--r--nx-X11/programs/Xserver/mi/miwindow.c20
3 files changed, 133 insertions, 36 deletions
diff --git a/nx-X11/programs/Xserver/mi/Imakefile b/nx-X11/programs/Xserver/mi/Imakefile
index 0d70c46ae..18a04517f 100644
--- a/nx-X11/programs/Xserver/mi/Imakefile
+++ b/nx-X11/programs/Xserver/mi/Imakefile
@@ -16,12 +16,10 @@
/**************************************************************************/
XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:53:36 cpqbld Exp $
-
-
-
-
XCOMM $XFree86: xc/programs/Xserver/mi/Imakefile,v 3.34 2002/05/22 21:38:31 herrb Exp $
+NULL =
+
#include <Server.tmpl>
#if ! HasCbrt
@@ -40,27 +38,94 @@ MIINITEXTSRC = miinitext.c
MIINITEXTOBJ = miinitext.o
#endif
-SRCS = $(CBRT_SRC) mivaltree.c mipolyseg.c mipolyrect.c \
- mipoly.c mipolycon.c mipolygen.c mipolyutil.c \
- mifillrct.c miwideline.c mispans.c \
- miarc.c mizerarc.c mifillarc.c \
- miwindow.c micursor.c \
- mipolytext.c mibitblt.c mipolypnt.c mipushpxl.c \
- miexpose.c miglblt.c mizerline.c mizerclip.c mifpolycon.c \
- midash.c mibstore.c mibank.c $(MIINITEXTSRC) mieq.c \
- mipointer.c misprite.c midispcur.c miscrinit.c miclipn.c migc.c \
- micmap.c mioverlay.c
-
-OBJS = $(CBRT_OBJ) mivaltree.o mipolyseg.o mipolyrect.o \
- mipoly.o mipolycon.o mipolygen.o mipolyutil.o \
- mifillrct.o miwideline.o mispans.o \
- miarc.o mizerarc.o mifillarc.o \
- miwindow.o micursor.o \
- mipolytext.o mibitblt.o mipolypnt.o mipushpxl.o \
- miexpose.o miglblt.o mizerline.o mizerclip.o mifpolycon.o \
- midash.o mibstore.o mibank.o $(MIINITEXTOBJ) mieq.o \
- mipointer.o misprite.o midispcur.o miscrinit.o miclipn.o migc.o \
- micmap.o mioverlay.o
+#if (!(defined(NXAgentServer) && NXAgentServer))
+NXAGENT_SKIP_SRCS = \
+ miexpose.c \
+ $(NULL)
+NXAGENT_SKIP_OBJS = \
+ miexpose.o \
+ $(NULL)
+#endif
+
+SRCS = $(CBRT_SRC) \
+ mivaltree.c \
+ mipolyseg.c \
+ mipolyrect.c \
+ mipoly.c \
+ mipolycon.c \
+ mipolygen.c \
+ mipolyutil.c \
+ mifillrct.c \
+ miwideline.c \
+ mispans.c \
+ miarc.c \
+ mizerarc.c \
+ mifillarc.c \
+ miwindow.c \
+ micursor.c \
+ mipolytext.c \
+ mibitblt.c \
+ mipolypnt.c \
+ mipushpxl.c \
+ miglblt.c \
+ mizerline.c \
+ mizerclip.c \
+ mifpolycon.c \
+ midash.c \
+ mibstore.c \
+ mibank.c \
+ $(MIINITEXTSRC) \
+ mieq.c \
+ mipointer.c \
+ misprite.c \
+ midispcur.c \
+ miscrinit.c \
+ miclipn.c \
+ migc.c \
+ micmap.c \
+ mioverlay.c \
+ $(NXAGENT_SKIP_SRCS) \
+ $(NULL)
+
+OBJS = $(CBRT_OBJ) \
+ mivaltree.o \
+ mipolyseg.o \
+ mipolyrect.o \
+ mipoly.o \
+ mipolycon.o \
+ mipolygen.o \
+ mipolyutil.o \
+ mifillrct.o \
+ miwideline.o \
+ mispans.o \
+ miarc.o \
+ mizerarc.o \
+ mifillarc.o \
+ miwindow.o \
+ micursor.o \
+ mipolytext.o \
+ mibitblt.o \
+ mipolypnt.o \
+ mipushpxl.o \
+ miglblt.o \
+ mizerline.o \
+ mizerclip.o \
+ mifpolycon.o \
+ midash.o \
+ mibstore.o \
+ mibank.o \
+ $(MIINITEXTOBJ) \
+ mieq.o \
+ mipointer.o \
+ misprite.o \
+ midispcur.o \
+ miscrinit.o \
+ miclipn.o \
+ migc.o \
+ micmap.o \
+ mioverlay.o \
+ $(NXAGENT_SKIP_OBJS) \
+ $(NULL)
#if defined(XorgVersion)
/*
@@ -83,16 +148,27 @@ EXT_DEFINES = ExtensionDefines \
EXT_DEFINES = ExtensionDefines -UXINPUT \
-UXFree86LOADER
-
#endif
#endif
-INCLUDES = -I. -I../include -I../render \
- -I../xfixes -I../damageext -I../miext/damage \
- -I$(XINCLUDESRC) -I$(EXTINCSRC) -I$(SERVERSRC)/Xext \
- `pkg-config --cflags-only-I pixman-1`
-LINTLIBS = ../dix/llib-ldix.ln ../os/llib-los.ln
+INCLUDES = -I. \
+ -I../include \
+ -I../render \
+ -I../xfixes \
+ -I../damageext \
+ -I../miext/damage \
+ -I$(XINCLUDESRC) \
+ -I$(EXTINCSRC) \
+ -I$(SERVERSRC)/Xext \
+ `pkg-config --cflags-only-I pixman-1` \
+ $(NULL)
+
+LINTLIBS = \
+ ../dix/llib-ldix.ln \
+ ../os/llib-los.ln \
+ $(NULL)
+
DEFINES = $(FFS_DEFINES)
NormalLibraryObjectRule()
diff --git a/nx-X11/programs/Xserver/mi/miexpose.c b/nx-X11/programs/Xserver/mi/miexpose.c
index 7b7480a91..d256c293f 100644
--- a/nx-X11/programs/Xserver/mi/miexpose.c
+++ b/nx-X11/programs/Xserver/mi/miexpose.c
@@ -130,6 +130,7 @@ exposing is done by the backing store's GraphicsExpose function, of course.
*/
+#ifndef NXAGENT_SERVER
RegionPtr
miHandleExposures(pSrcDrawable, pDstDrawable,
pGC, srcx, srcy, width, height, dstx, dsty, plane)
@@ -376,6 +377,7 @@ miHandleExposures(pSrcDrawable, pDstDrawable,
return NULL;
}
}
+#endif
/* send GraphicsExpose events, or a NoExpose event, based on the region */
@@ -495,6 +497,7 @@ miSendExposures(pWin, pRgn, dx, dy)
DEALLOCATE_LOCAL(pEvent);
}
+#ifndef NXAGENT_SERVER
void
miWindowExposures(pWin, prgn, other_exposed)
WindowPtr pWin;
@@ -583,7 +586,7 @@ miWindowExposures(pWin, prgn, other_exposed)
else if (exposures && exposures != prgn)
RegionDestroy(exposures);
}
-
+#endif
/*
this code is highly unlikely. it is not haile selassie.
@@ -631,7 +634,7 @@ tossGC (
return 0;
}
-
+#ifndef NXAGENT_SERVER
void
miPaintWindow(pWin, prgn, what)
register WindowPtr pWin;
@@ -654,7 +657,7 @@ int what;
#define COUNT_BITS 8
ChangeGCVal gcval[7];
- ChangeGCVal newValues [COUNT_BITS];
+ ChangeGCVal newValues [COUNT_BITS] = {{ 0 }};
BITS32 gcmask, index, mask;
RegionRec prgnWin;
@@ -881,7 +884,7 @@ int what;
FreeScratchGC(pGC);
}
}
-
+#endif
/* MICLEARDRAWABLE -- sets the entire drawable to the background color of
* the GC. Useful when we have a scratch drawable and need to initialize
diff --git a/nx-X11/programs/Xserver/mi/miwindow.c b/nx-X11/programs/Xserver/mi/miwindow.c
index 198f765dd..aff7128c3 100644
--- a/nx-X11/programs/Xserver/mi/miwindow.c
+++ b/nx-X11/programs/Xserver/mi/miwindow.c
@@ -1048,7 +1048,25 @@ miSetShape(pWin)
bsExposed = (*pScreen->TranslateBackingStore)
(pWin, 0, 0, pOldClip,
pWin->drawable.x, pWin->drawable.y);
- if (WasViewable)
+
+ /*
+ * Applies to NXAGENT_SERVER builds:
+ *
+ * We got a few, rare, segfaults here after having
+ * started using the backing store. It may be a
+ * different bug but miChangeSaveUnder() calls mi-
+ * CheckSubSaveUnder() that, in turn, can change
+ * the backing store attribute of the window. This
+ * means that we may try to destroy the region
+ * even if it was not created at the beginning of
+ * this function as, at the time, the backing store
+ * was off. miCheckSubSaveUnder() appear to get a
+ * pointer to the parent, so maybe doesn't change
+ * the attribute of the window itself. This is to
+ * be better investigated.
+ */
+
+ if (WasViewable && pOldClip)
RegionDestroy(pOldClip);
if (bsExposed)
{