Fw: New Year's puzzle

Paul Werkowski pw at snoopy.qozzy.com
Sun Jan 3 16:19:59 UTC 2021


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 at 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/mcclim-devel/attachments/20210103/4ed7fa2f/attachment.html>


More information about the mcclim-devel mailing list