[Cuis-dev] Pythagoras Tree Morph
Mariano Montone
marianomontone at gmail.com
Fri Nov 4 09:10:01 PDT 2022
I should have first asked, how is horizontally scrolling supposed to
work? :)
When should it be enabled?
El 4/11/22 a las 13:08, Mariano Montone escribió:
> 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.
>
> Then, if I insert this hack, I can have it for Ctrl key here on Linux:
>
> generateMouseScrollEvent: evtBuf
> "Generate the appropriate mouse wheel event for the given raw
> event buffer
>
> Copied from Sqeak 5.3 and modifed."
>
> | buttons modifiers stamp deltaX deltaY direction oldButtons |
> stamp
evtBuf second.
> stamp = 0 ifTrue: [stamp := Time millisecondClockValue ].
> deltaX
evtBuf third.
> deltaY
evtBuf fourth.
> "This implementation deliberatly ignores movements in both
> dimensions:"
> direction
> deltaY negative
> ifTrue: [ #down ]
> ifFalse: [ deltaY strictlyPositive
> ifTrue: [ #up ]
> ifFalse: [ deltaX negative
> ifTrue: [ #left ]
> ifFalse: [ deltaX strictlyPositive
> ifTrue: [ #right ]
> ifFalse: [
nil "No movement, bailing out" ]
> ] ] ].
> modifiers
evtBuf fifth.
> buttons
(modifiers bitShift: 3) bitOr: (lastMouseEvent buttons
> bitAnd: 7).
> oldButtons
lastEventBuffer fifth
> bitOr: (lastEventBuffer sixth bitShift: 3).
> lastEventBuffer := evtBuf.
> "Hack"
> evtBuf sixth = 2 ifTrue: [
> direction = #up ifTrue: [direction
#right].
> direction = #down ifTrue: [direction
#left]].
> "End of hack"
>
MouseScrollEvent new
> setType: #mouseScroll
> position: self morphPosition
> direction: direction
> buttons: (oldButtons bitXor: buttons)
> hand: self
> stamp: stamp
>
>
> What I mean is, modifier keys are available in evtBuf. But I'm
> probably making up when an horizontal scrolling should be enabled.
>
>
> Mariano
>
> El 4/11/22 a las 12:45, Mariano Montone escribió:
>> El 4/11/22 a las 12:27, Juan Vuletich escribió:
>>>> 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.
>>>
>>> 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.
>>>
>>> I think this is worth discussing in vm-dev.
>>
>> 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.
>>
>>
>> Mariano
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20221104/60297a2e/attachment.htm>
More information about the Cuis-dev
mailing list