diff options
Diffstat (limited to 'nx-X11/programs/Xserver/mi')
-rw-r--r-- | nx-X11/programs/Xserver/mi/Imakefile | 138 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/mi/miexpose.c | 11 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/mi/miwindow.c | 20 |
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) { |