<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>The behavior seems to be there for a long time and is not a bug
      but deliberately coded. This is made for consistency with all
      macros which support :move-cursor key parameter (like
      `surrounding-output-with-border'):</p>
    <blockquote>
      <p>If the boolean <i>move-cursor</i> is <span class="term">true</span>
        (the default), then the text cursor will be moved so that it
        immediately follows the lower right corner of the bordered
        output. </p>
    </blockquote>
    So if wrapping things in `vertically' solves the issue we are all
    set.<br>
    <br>
    Best regards,<br>
    Daniel<br>
    <br>
    <div class="moz-cite-prefix">On 11.11.2017 22:40, John Morrison
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAOQgGjSveF2vq7A99vXF9wXyzObmeeLuF1W89odDXWP0tBYWpw@mail.gmail.com">
      <div dir="ltr">Hey, thanks.  I will get on the task of trying to
        find out exactly which commit changed the behavior I remember. 
        This will, however, take me a bit to wrap my brain around
        checking out particular git commit versions, as I am pretty much
        a git lightweight.
        <div><br>
        </div>
        <div>Thanks again!</div>
        <div><br>
        </div>
        <div>-jm</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sat, Nov 11, 2017 at 4:06 PM, Daniel
          Kochmański <span dir="ltr"><<a
              href="mailto:daniel@turtleware.eu" target="_blank"
              moz-do-not-send="true">daniel@turtleware.eu</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF">
              <p>Alright. Fact that we start by diagonal lines looks
                like a bug (though I'm not 100% sure) – could you please
                fill out the bug report? If you know commit when it
                worked as you expected, that would be helpful too.</p>
              <p>As of your problem at hand – macro vertically (and all
                the others) isn't limited only to layouts section, you
                may use it in display-gadget function too. If you need
                something, what will compose list in such macro, it is a
                matter of writing macro doing just that, like</p>
              <p>(defmacro vertically* (options body-list) `(vertically
                ,options ,@body-list))</p>
              <p>-- cut here --</p>
              <p>(in-package :clim-user)<span class=""><br>
                  <br>
                  (define-application-frame test-gadgets ()<br>
                    ()<br>
                    (:panes<br>
                </span>    (output<br>
                    :application<br>
                    :display-time :command-loop<br>
                    :display-function 'display-gadgets)<br>
                   (outputs<br>
                    :application<br>
                    :display-time :command-loop<br>
                    :display-function 'display-gadgets2))<br>
                  (:layouts<br>
                   (default (horizontally ()  output outputs))))<br>
                <br>
                (defmethod display-gadgets ((frame test-gadgets) stream)<br>
                  (dolist (item '("one" "two" "three" "four"))<br>
                    (with-output-as-gadget (stream)<span class=""><br>
                        (make-pane 'push-button<br>
                                   :label item<br>
                                   :activate-callback<br>
                                   (lambda (&rest args)<br>
                                     (declare (ignore args))<br>
                </span>                    (notify-user
                *application-frame* "You clicked a button"))))))<span
                  class=""><br>
                  <br>
                  (defun make-gadget (item)<br>
                    (make-pane 'push-button<br>
                               :label item<br>
                               :activate-callback<br>
                               (lambda (&rest args)<br>
                                 (declare (ignore args))<br>
                                 (notify-user *application-frame* "You
                  clicked a button"))))<br>
                  <br>
                </span> (defmethod display-gadgets2 ((frame
                test-gadgets) stream)<br>
                  (with-output-as-gadget (stream)<span class=""><br>
                      (vertically ()<br>
                        (make-gadget "one")<br>
                        (make-gadget "two")<br>
                </span>       (make-gadget "three"))))<br>
                <br>
                (run-frame-top-level (make-application-frame
                'test-gadgets))<br>
              </p>
              <p>-- cut here --</p>
              <p>hope this is helpful.<br>
              </p>
              <p>Regards,</p>
              <p>Daniel<br>
              </p>
              <div>
                <div class="h5"> <br>
                  <div class="m_-3300027386482786851moz-cite-prefix">On
                    11.11.2017 21:49, John Morrison wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">ugh - should attach what I said I
                      attached</div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Sat, Nov 11, 2017 at
                        3:48 PM, John Morrison <span dir="ltr"><<a
                            href="mailto:jm@symbolic-simulation.com"
                            target="_blank" moz-do-not-send="true">jm@symbolic-simulation.com</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div dir="ltr">Hi Daniel (and Lucien, who
                            replied privately):
                            <div><br>
                            </div>
                            <div>(1) thanks for the "not dumb" comment.</div>
                            <div><br>
                            </div>
                            <div>Sorry additionally for not being
                              clear.  The app is intended for the
                              buttons (will eventually be checkboxes,
                              but buttons were simpler for purposes of
                              isolating the behavior) to be dynamic
                              (unknown at layout time as things to be
                              checked will come and go during program
                              execution).</div>
                            <div><br>
                            </div>
                            <div>So while I did have some joy with
                              making :list-panes with :items in the
                              definition of the application frame (and
                              it was prettier than what I sent), I had
                              less joy changing those items
                              programmatically.</div>
                            <div><br>
                            </div>
                            <div>When I put a "terpri" in as in the
                              slightly revised test program as the other
                              alternative, I get a blank line between
                              the gadgets, which (given I am going to
                              have a lot of items) would cause the user
                              excess scrolling due to the whitespace
                              between boxes.</div>
                            <span class="m_-3300027386482786851HOEnZb"><font
                                color="#888888">
                                <div><br>
                                </div>
                                <div>-jm</div>
                                <div><br>
                                </div>
                                <div><br>
                                </div>
                                <div><br>
                                </div>
                              </font></span></div>
                          <div class="m_-3300027386482786851HOEnZb">
                            <div class="m_-3300027386482786851h5">
                              <div class="gmail_extra"><br>
                                <div class="gmail_quote">On Sat, Nov 11,
                                  2017 at 3:24 PM, Daniel Kochmański <span
                                    dir="ltr"><<a
                                      href="mailto:daniel@turtleware.eu"
                                      target="_blank"
                                      moz-do-not-send="true">daniel@turtleware.eu</a>></span>
                                  wrote:<br>
                                  <blockquote class="gmail_quote"
                                    style="margin:0 0 0
                                    .8ex;border-left:1px #ccc
                                    solid;padding-left:1ex">Hello John,<br>
                                    <br>
                                    question is obviously not dumb. Some
                                    cognitive problem arises from the
                                    disparity, that McCLIM provides both
                                    sheets and gadgets. If you want to
                                    lay out buttons vertically, you may
                                    either put terpri after each
                                    make-pane, or put each button in
                                    your layout (the latter is more
                                    elegant imho):<br>
                                    <br>
                                    -- cut --<br>
                                    <br>
                                    (in-package :clim-user)<br>
                                    <br>
                                    (defun make-gadget (item)<br>
                                      (make-pane 'push-button<br>
                                                 :label item<br>
                                                 :activate-callback<br>
                                                 (lambda (&rest
                                    args)<br>
                                                   (declare (ignore
                                    args))<br>
                                                   (notify-user
                                    *application-frame* "You clicked a
                                    button"))))<br>
                                    <br>
                                    (define-application-frame
                                    test-gadgets ()<br>
                                      ()<br>
                                      (:panes)<br>
                                      (:layouts<br>
                                       (default (vertically ()<br>
                                                  (make-gadget "one")<br>
                                                  (make-gadget "two")<br>
                                                  (make-gadget "three")<br>
                                                  (make-gadget
                                    "four")))))<br>
                                    <br>
                                    <br>
                                    (run-frame-top-level
                                    (make-application-frame
                                    'test-gadgets))<br>
                                    <br>
                                    -- cut --<br>
                                    <br>
                                    Best regards,<br>
                                    <br>
                                    Daniel
                                    <div
                                      class="m_-3300027386482786851m_7477811832927283636HOEnZb">
                                      <div
                                        class="m_-3300027386482786851m_7477811832927283636h5"><br>
                                        <br>
                                        <br>
                                        On 11.11.2017 21:07, John
                                        Morrison wrote:<br>
                                        <blockquote class="gmail_quote"
                                          style="margin:0 0 0
                                          .8ex;border-left:1px #ccc
                                          solid;padding-left:1ex"> Hi;<br>
                                          <br>
                                          In another app I am writing, I
                                          BELIEVE gadgets used to come
                                          out stacked vertically.  After
                                          an upgrade (to current git), I
                                          think they come out
                                          "diagonally," in that the x
                                          & y of successive gadgets
                                          increase (presumbly by the
                                          dimensions of its preceding
                                          gadget).  Please find attached
                                          the simplest test program I
                                          could cons up that displays
                                          the behavior, along with a
                                          screenshot that shows the
                                          behavior.<br>
                                          <br>
                                          What is the idiomatic/best way
                                          to get them to stack
                                          vertically?  I messed about
                                          (again, mostly unsuccessfully,
                                          or I wouldn't be pestering you
                                          all) with various approaches,
                                          but every time I find myself
                                          with a complex solution, it
                                          turns out there is indeed a
                                          Better, Simpler Way.<br>
                                          <br>
                                          Thanks,<br>
                                          <br>
                                          -jm<br>
                                          <br>
                                        </blockquote>
                                        <br>
                                      </div>
                                    </div>
                                  </blockquote>
                                </div>
                                <br>
                              </div>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>