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,
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 1as 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"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.