Well, that could explain all the wierd stuff I've been seeing leading me to come up with that very simple example. FWIW, lispworks clim2 works fine.
Thanks,
On 1/3/2021 11:01 AM, Daniel Kochmański wrote:
Accidently send to the sender, not the mailing list, forwarding -------- Oryginalna wiadomość -------- 3 sty 2021, 16:52, Daniel Kochmański napisał(a):
If the beer is at stake, I shall take a guess! When 1+ is used, we draw beyond the sheet region. That means, that *if* we call change-space-requirements it will cause a call to resize-sheet, which in turn will: a) clear the screen, b) call redisplay-frame-pane. Since the sheet region has changed, redisplaying the frame pane will expand it even further, so we go back to the *if* part. Now, regarding the *if*, we have a bogus method: (defmethod stream-read-gesture :before ((stream clim-stream-pane) &key timeout peek-p input-wait-test input-wait-handler pointer-button-press-handler) (declare (ignore timeout peek-p input-wait-test input-wait-handler pointer-button-press-handler)) (force-output stream) ;; make the output visible (let ((w (bounding-rectangle-max-x (stream-output-history stream))) (h (bounding-rectangle-max-y (stream-output-history stream)))) (unless (region-contains-region-p (sheet-region stream) (make-rectangle* 0 0 w h)) (change-space-requirements stream) (finish-output stream) (redisplay-frame-pane *application-frame* stream)))) that causes bogus redisplays before each gesture read, so when we move the pointer over the window, we enter the loop: 1. display (and expand the output history) 2. move the pointer 3. change space requirements (and resize) 4. goto 1 as a bonus point we have one more unnecessary redisplay. The fun part is that I have changes stashed that remove this method. All best, Daniel -- Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland TurtleWare - Daniel Kochmański | www.turtleware.eu <http://www.turtleware.eu> "Be the change that you wish to see in the world." - Mahatma Gandhi ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐ On Sunday, 3 January 2021 16:18, Paul Werkowski <pw@snoopy.qozzy.com> wrote: > Run the frame as is. Grab the lower corner with mouse pointer. Move it > around. > > Then change either or both of the (1+ ...) forms to (1- ...) and see > what happens. > > A free virtual beer to whomever solves it.