Re: toward a more efficient event loop

"Marcel Taeumel (H) via Squeak-dev" <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.squeak.general
Message-ID <[email protected]>
Hi all --

Yes, we should improve wheel-scrolling for macOS platforms. User-input 
event folding might work, also without compromising the experience on 
other platforms.

I like to see an implementation that does not check for a specific 
platform but works for all our targets. :-)

(For me using Windows and a Razer Viper Mini mouse with noticable clicks 
in the wheel, I what to have consistent effects in the image, whenever I 
experience click in the wheel. At the time of writing, this is 3 items 
in a text list in Squeak.)

Best
Marcel

Am 23.08.2026 um 01:38 schrieb Lauren P:
> Hi List,
>
> Smooth scrolling is the bane of my existence on a Mac, especially with 
> cross-platform tools. (Blender is still unusable on the trackpad 
> because of that! I had to buy a mouse just for a real, discrete scroll 
> wheel.) However, I've never really noticed an issue in Squeak with the 
> event timing unless I'm idling, spinning the metaphorical wheel while 
> thinking, and then I do see it play catch-up. Maybe the computers at 
> work keep my expectations at Y2k? Maybe I do more thinking than inputing?
>
> I'd like to second Nicolas' idea of folding consecutive events in the 
> buffer anyways. If we poll the event queue and there are 50 ScrollDown 
> events in a 10ms window or whatever the delay is, do we really need to 
> process them all, a frame at a time? I know it's helpful to have 
> software events so close to the hardware events that make them, but a 
> noise filter of some sort would be useful in that case.
>
> Think how there's REPSPEED and KEYTIME because you're dwelling on a 
> keystroke while typing slowly and hooooooooooolding the key down to 
> send the input continuously, and how fast typists need really short 
> dwell times or the software misses keystrokes. I haven't done hardware 
> events since the TI-84, but maybe there's an OS call that can tell the 
> difference between smooth and regular scrolling, like how it does the 
> same for keystrokes?
>
> On Sat, Aug 22, 2026, 15:41 <[email protected]> wrote:
>
>     If there is a better strategy in Cuis, we should adopt it if
>     possible. There is a lot of good design thinking in Cuis.
>
>     Do you have a pointer (class/method) to where this is implemented
>     in the Cuis image?
>
>     Thanks,
>
>     Dave
>
>
>     On 2026-08-22 19:18, Nicolas Cellier wrote:
>
>>     Hi all,
>>     if you compare Cuis morphic feel to Squeak morphic feel, the
>>     former looks snappy, the latter sluggish.
>>     Especially if your trackpad generates a bunch of MouseWheelEvent
>>     (MouseScrollEvent in Cuis) whenever you're willing to scroll.
>>     Why is that?
>>     Squeak World goes through an interCyclePause:  at every mouse event.
>>     Indeed, when the hand *processEvents* it stops at first mouse
>>     event encountered.
>>     Hence, unless you are ready to sacrifice some battery life with a
>>     PreferenceshigherPerformance,
>>     the event buffer might take several seconds to drain with such
>>     strategy, especially on mac.
>>     It makes the user experience somehow catastrophic.
>>     Cuis has a different strategy:
>>     - processEvents drains the event buffer.
>>       however, it only processes one mouse move event per cycle, and
>>     drops the other ones.
>>     - the world cycle doesn't pause if (lastCycleHadAnyEvent or: [
>>     deferredUIMessages isEmpty not ])
>>     - it also does not pause further than the next morphic step or alarm
>>     - the pause grows gradually from 20 to 200ms whenever there is no
>>     activity
>>       but at least %)ms in server mode
>>      Maybe it's time to revise our strategy too !
>>     Nicolas
>>
>>     Squeak-dev mailing list -- [email protected]
>>     To unsubscribe send an email to
>>     [email protected]
>     Squeak-dev mailing list -- [email protected]
>     To unsubscribe send an email to
>     [email protected]
>
>
> Squeak-dev mailing list [email protected]
> To unsubscribe send an email [email protected]

Squeak-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.