<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>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.</p>
    <p>Thanks,</p>
    <div class="moz-cite-prefix">On 1/3/2021 11:01 AM, Daniel Kochmański
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:zp3Gs7z2-2EENsNqo6-I_hZokQqi2l0_4Hbv0gwOoMun2a1EOycsqe02taTXJzv4fM5IRRPkyWlds16eU6FdNTLiVyWzj-LGWVeMV_hHWjk=@turtleware.eu">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <br>
      <br>
      <br>
      Accidently send to the sender, not the mailing list, forwarding<br>
      -------- Oryginalna wiadomość --------<br>
      ‎ 3 sty 2021, 16:52, Daniel Kochmański napisał(a):
      <blockquote class="protonmail_quote"><br>
        <p dir="ltr">If the beer is at stake, I shall take a guess!</p>
        <p dir="ltr">When 1+ is used, we draw beyond the sheet region.
          That means, that *if*<br>
          we call change-space-requirements it will cause a call to
          resize-sheet,<br>
          which in turn will: a) clear the screen, b) call
          redisplay-frame-pane.</p>
        <p dir="ltr">Since the sheet region has changed, redisplaying
          the frame pane will<br>
          expand it even further, so we go back to the *if* part.</p>
        <p dir="ltr">Now, regarding the *if*, we have a bogus method:</p>
        <p dir="ltr">(defmethod stream-read-gesture :before ((stream
          clim-stream-pane)<br>
          &key timeout peek-p<br>
          input-wait-test<br>
          input-wait-handler<br>
          pointer-button-press-handler)<br>
          (declare (ignore timeout peek-p input-wait-test
          input-wait-handler<br>
          pointer-button-press-handler))<br>
          (force-output stream)<br>
          ;; make the output visible<br>
          (let ((w (bounding-rectangle-max-x (stream-output-history
          stream)))<br>
          (h (bounding-rectangle-max-y (stream-output-history stream))))<br>
          (unless (region-contains-region-p (sheet-region stream)<br>
          (make-rectangle* 0 0 w h))<br>
          (change-space-requirements stream)<br>
          (finish-output stream)<br>
          (redisplay-frame-pane *application-frame* stream))))</p>
        <p dir="ltr">that causes bogus redisplays before each gesture
          read, so when we move<br>
          the pointer over the window, we enter the loop:</p>
        <p dir="ltr">1. display (and expand the output history)<br>
          2. move the pointer<br>
          3. change space requirements (and resize)<br>
          4. goto 1</p>
        <p dir="ltr">as a bonus point we have one more unnecessary
          redisplay.</p>
        <p dir="ltr">The fun part is that I have changes stashed that
          remove this method.</p>
        <p dir="ltr">All best,<br>
          Daniel</p>
        <p dir="ltr">--<br>
          Daniel Kochmański ;; aka jackdaniel | Przemyśl, Poland<br>
          TurtleWare - Daniel Kochmański      | <a
            href="http://www.turtleware.eu" moz-do-not-send="true">www.turtleware.eu</a></p>
        <p dir="ltr">"Be the change that you wish to see in the world."
          - Mahatma Gandhi</p>
        <p dir="ltr">‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐<br>
          On Sunday, 3 January 2021 16:18, Paul Werkowski
          <a class="moz-txt-link-rfc2396E" href="mailto:pw@snoopy.qozzy.com"><pw@snoopy.qozzy.com></a> wrote:</p>
        <p dir="ltr">> Run the frame as is. Grab the lower corner
          with mouse pointer. Move it<br>
          > around.<br>
          ><br>
          > Then change either or both of the (1+  ...) forms to (1-
          ...) and see<br>
          > what happens.<br>
          ><br>
          >  A free virtual beer to whomever solves it.</p>
      </blockquote>
    </blockquote>
  </body>
</html>