CLIM mail archive

[Prev][Next][Index][Thread]

Postscript dumps of frame output history.



   Date: Wed, 11 May 1994 14:07-0700
   From: Gregory M Anderson <gma@bitterroot.apl.washington.edu>

       Date: Tue, 10 May 1994 12:36 PDT
       From: Scott McKay <swm@harlequin.com>

	  Date: Mon, 9 May 1994 19:24-0700
	  From: Gregory M Anderson <gma@bitterroot.apl.washington.edu>
	  Character-Type-Mappings: (1 0 (NIL 0) (:FIX :ROMAN :TINY) "TINY")
				   (2 0 (NIL 0) (NIL :BOLD NIL) "CPTFONTCB")
				   (3 0 (NIL 0) (NIL :ITALIC NIL) "CPTFONTI")
	  Fonts: CPTFONT, TINY, CPTFONTCB, CPTFONTI


	  I'm trying to dump an application frame output to a postscript stream (the
	  frame display functions are presentations with incremental redisplay).  I thought
	  that all I would have to do is call the display functions again with
	  output to the postscript stream.  But CLIM seems to be trying to 
	  redisplay the output history on the new stream (Is it acceptable 
	  to change the stream on an output history?  Doesn't seem
	  like it would be although it partially worked once.)

	  And I get this error.  What am I doing wrong.

       It looks to me like you created the output records on one stream, and
       then used REPLAY to try to replay them onto a different stream, namely
       the PostScript stream.  Unfortunately, you can't do this.

       The reason you can't is that output records have their size measured
       for the stream they are created on.  For example, text style metrics
       are going to be completely different on a PS stream than they are on
       some X terminal.

   That's what it looks like to me too, but the question is, why.
   What I did is call the frame display function (which has the presents
   with incremental redisplay) with output to the postscript stream, and 
   that frame display code decided to replay the output history.  I didn't ask 
   specifically to replay the history.  I suppose it's the redisplay code, 
   not the presents, that cause the replay attempt.  

Correct -- REDISPLAY is doing the minimum amount of work it can get
away with, so it's replaying on you.

   One option is to duplicate the frame display function without 
   the incremental redisplay code.  It seems strange to have to do that.
   Is there a way to force a comprehensive redraw without duplicating the code?

REDISPLAY-FRAME-PANE :FORCE-P T might work.

   Seems like the redisplay code should record the stream the
   history was created on, and changing to a different stream should cause 
   a comprehensive redraw.  Might this be a CLIM improvement?

It's probably not worth hairing up the basic protocols.


References:

Main Index | Thread Index