<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">I should have first asked, how is
      horizontally scrolling supposed to work? :)</div>
    <div class="moz-cite-prefix">When should it be enabled?</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">El 4/11/22 a las 13:08, Mariano Montone
      escribió:<br>
    </div>
    <blockquote type="cite"
      cite="mid:44432757-9493-e4d6-cbf3-c763d12f7f7c@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <div class="moz-cite-prefix">Ok. I don't know how horizontall
        scrolling is supposed to work. But let's say that horizontall
        scrolling is enabled when mouse scroll + modifier key.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">Then, if I insert this hack, I can
        have it for Ctrl key here on Linux:</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">generateMouseScrollEvent: evtBuf<br>
            "Generate the appropriate mouse wheel event for the given
        raw event buffer<br>
            <br>
            Copied from Sqeak 5.3 and modifed."<br>
        <br>
            | buttons modifiers stamp deltaX deltaY direction oldButtons
        |<br>
            stamp  evtBuf second.<br>
            stamp = 0 ifTrue: [stamp := Time millisecondClockValue ].<br>
            deltaX  evtBuf third.<br>
            deltaY  evtBuf fourth.<br>
            "This implementation deliberatly ignores movements in both
        dimensions:"<br>
            direction  <br>
                deltaY negative<br>
                    ifTrue: [ #down ]<br>
                    ifFalse: [ deltaY strictlyPositive<br>
                        ifTrue: [ #up ]<br>
                        ifFalse: [ deltaX negative<br>
                            ifTrue: [ #left ]<br>
                            ifFalse: [ deltaX strictlyPositive<br>
                                ifTrue: [ #right ]<br>
                                ifFalse: [  nil "No movement, bailing
        out" ] ] ] ].<br>
            modifiers  evtBuf fifth.<br>
            buttons  (modifiers bitShift: 3) bitOr: (lastMouseEvent
        buttons bitAnd: 7).<br>
            oldButtons  lastEventBuffer fifth <br>
                bitOr: (lastEventBuffer sixth bitShift: 3).<br>
            lastEventBuffer := evtBuf.<br>
            "Hack"<br>
            evtBuf sixth = 2 ifTrue: [<br>
                direction = #up ifTrue: [direction  #right].<br>
                direction = #down ifTrue: [direction  #left]].<br>
            "End of hack"<br>
             MouseScrollEvent new<br>
                setType: #mouseScroll<br>
                position: self morphPosition <br>
                direction: direction<br>
                buttons: (oldButtons bitXor: buttons)<br>
                hand: self<br>
                stamp: stamp</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">What I mean is, modifier keys are
        available in evtBuf. But I'm probably making up when an
        horizontal scrolling should be enabled.</div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">    Mariano<br>
      </div>
      <div class="moz-cite-prefix"><br>
      </div>
      <div class="moz-cite-prefix">El 4/11/22 a las 12:45, Mariano
        Montone escribió:<br>
      </div>
      <blockquote type="cite"
        cite="mid:3520291f-feef-e0dd-2b2b-359bb29befbf@gmail.com">
        <meta http-equiv="Content-Type" content="text/html;
          charset=UTF-8">
        <div class="moz-cite-prefix">El 4/11/22 a las 12:27, Juan
          Vuletich escribió:<br>
        </div>
        <blockquote type="cite" cite="mid:63652F79.9080804@cuis.st">
          <blockquote type="cite" style="color: #007cff;">One thing: can
            you look at the code for changing the depth via scroll +
            ctrl? Doesn't work here on Linux, and I don't know what I
            may be doing wrong. It'd be great you can fix that detail. <br>
          </blockquote>
          <br>
          This seems to be a VM issue. If you hack
          #generateMouseScrollEvent: to do `evtBuf print`, you'll see
          that on the Mac it correctly reports both positive and
          negative deltas both in Y and X. On Linux it only reports
          negative X and positive Y. On Windows, it seems not to
          generate scroll events at all. <br>
          <br>
          I think this is worth discussing in vm-dev. </blockquote>
        <p>When I press Ctrl, or Alt, or Shift, plus MouseScroll, I see
          a different mode indicator in the evtBuf. So, it is working,
          the difference in the event is there. But I think it is not
          translated to #left, #right to the Scroll event in Cuis. I'll
          try to have a closer look.</p>
        <p><br>
        </p>
        <p>    Mariano<br>
        </p>
        <p><br>
        </p>
      </blockquote>
      <p><br>
      </p>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>