In document.c:RenderRecord() we have the following bit of code contributed
by me:

    if ( ( clipRect->extent.y <= 0 || clipRect->extent.x <= 0 ) ) {
        mode = WRITEMODE_NO_DRAW;
    }
    else {
        if ( IsHiResTypeSony( HiResType() ) )
            /* There is some problem with hi-res clipping on Sony units */
            RotSetClip( &viewportBounds );
        else
            RotSetClip( clipRect );
        RotCharClipRange( clipRect->topLeft.y, clipRect->extent.y );
    }

I screwed up there a little.  After all, if mode is something different from
WRITEMODE_DRAW_CHAR, it shouldn't set mode to WRITEMODE_NO_DRAW no matter
what the clipping is at.  (Theoretically, the clipping state is
unpredictable in such circumstances.)  Moreover, if the original mode was
WRITEMODE_DRAW the new mode shouldn't be WRITEMODE_NO_DRAW as that could
screw up anchors.  Instead, we want WRITEMODE_LAYOUT_ANCHORS.  So, I propose
to change to:

if ( mode == WRITEMODE_DRAW_CHAR ) {
    if ( ( clipRect->extent.y <= 0 || clipRect->extent.x <= 0 ) ) {
        mode = WRITEMODE_LAYOUT_ANCHORS;
    }
    else {
        if ( IsHiResTypeSony( HiResType() ) )
            /* There is some problem with hi-res clipping on Sony units */
            RotSetClip( &viewportBounds );
        else
            RotSetClip( clipRect );
        RotCharClipRange( clipRect->topLeft.y, clipRect->extent.y );
    }
}

That is if there are no objections.

Alex

--
Dr. Alexander R. Pruss
Department of Philosophy
Georgetown University
Washington, DC 20057-1133  U.S.A.
e-mail: [EMAIL PROTECTED]
online papers and home page: www.georgetown.edu/faculty/ap85
--------------------------------------------------------------------------
   "Philosophiam discimus non ut tantum sciamus, sed ut boni efficiamur."
       - Paul of Worczyn (1424)

_______________________________________________
plucker-dev mailing list
[EMAIL PROTECTED]
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to