Hey Paul,
regarding the attached code: why do you expect a call to clear-output-record when it is only moved around? how the issue is visible in the attached code (except for that (trace clear-output-record) doesn't yield anything).
Mind that recently I rewrote parts of the incremental redisplay to fix some issues - I'm not sure whether these changes are already propagated to quicklisp.
btw when you draw the border it makes the window bigger with each iteration, because the line thickness is 1 and it is not filled, so drawing (x1 y1 x2 y2) actually covers the area (x1 y1 x2+1 y2+1).
As of the second issue, could you supply a code that triggers the issue? Thanks!
Best regards,
Daniel
--
Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland
"Be the change that you wish to see in the world." - Mahatma Gandhi
------- Original Message -------
On Friday, January 28th, 2022 at 19:26, Paul Werkowski <pw@snoopy.qozzy.com> wrote:
I've been revisiting a clim project from 15 years ago
which was to provide clim graphics to Dan Corkhill's very nice
GBBopen blackboard system. I have an initial version now working
nicely on Lispworks clim-2.0 on Windows. It is close to running
with McCLIM as well.
I have two issues, updating-output appears to work in that the
:cache-test is respected but where Lispworks clim calls
clear-output-record when a displayed object moves or is deleted
McCLIM does not do so. I have attached a simple demo that shows
that problem. Just click right or left anywhere in the pane to
move the green disk left or right to see the problem.
The other issue is that redisplay-frame-pane (not used in the
demo) always causes an infinite recursion that finally results in
a blown stack. Part of the problem is with window-clear which in
addition to using medium-clear-area, etc to clear the screen also
sets window size to zero and then calls compose-space. I have an
:around method that avoids that problem but the redisplay
recursion persists. My workaround for that is to just call the
display function directly but that does not allow updating-output
to work correctly.
Paul