[mcclim-devel] compose-space question

rpgoldman at real-time.com rpgoldman at real-time.com
Fri May 20 01:53:46 UTC 2005


If it's not a compose-space problem, I'm wondering about the code in
incremental-redisplay.lisp.  Could it be the case that 

(defmethod incremental-redisplay ((stream updating-output-stream-mixin) position
                                  erases moves draws erase-overlapping move-overlapping)
  (declare (ignore position))
  (let ((history (stream-output-history stream)))
    (with-output-recording-options (stream :record nil :draw t)
      (loop
          for (nil br) in erases
          do (erase-rectangle stream br))
      (loop
          for (nil old-bounding) in moves
          do (erase-rectangle stream old-bounding))
      (loop
          for (nil br) in erase-overlapping
          do (erase-rectangle stream br))
      (loop
          for (nil old-bounding) in move-overlapping
          do (erase-rectangle stream old-bounding)))
    (loop
        for (r) in moves
        do (replay r stream))
    (loop
        for (r) in draws
        do (replay r stream))
    (let ((res +nowhere+))
      (loop for (r) in erase-overlapping do (setf res (region-union res r)))
      (loop for (r) in move-overlapping do (setf res (region-union res r)))
      (replay history stream res)) ))

Does the Wrong Thing when the STREAM argument is an application pane,
ignoring the viewport stuff, and so the region operations are done
with the wrong bounding area?  In particular, it seems like the draws
are clipped, possibly because the region-union doesn't take into
account the scroll-bar area.

This is just a theory, and actually doesn't feel quite right to me.
But I'm bamboozled for why the stream has this odd clipping.  Can
anyone confirm or disprove it?  Better yet, does anyone have a better
theory to offer?

Thanks,
R



More information about the mcclim-devel mailing list