|
From: | Fred Kiefer |
Subject: | Re: X11 scroll-wheel improvements |
Date: | Mon, 16 Jan 2012 11:29:21 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111220 Thunderbird/9.0 |
On 16.01.2012 09:43, Eric Wasylishen wrote:
Hey, I just made two commits to gnustep-back (r34553 and r34554) which make a big improvement to scrolling with a mouse scrollwheel or trackpad's scrolling feature. The first helps avoid the GSDisplayServer event queue from filling up which prevents window autodisplay, and the second implements coalescing for scroll events. The coalescing seems to work very nicely - it means that the rate of scroll events sent to gui depends on how quickly gui can deal with them. As a result, scrolling with the scroll wheel feels just about as responsive as grabbing and moving the scroll bar. Let me know if it also works well for you, or you have any problems. :-)
I definitely like the coalescing of scroll events (although this might mess up the order of events, was that intended?), but am unsure about the other change.
If we should not listen for events in NSConnectionReplyMode, we need a similar change for the Windows backend as well. But wont this lead to an application that might be unable to participate in a Drag&Drop interaction? Or anything else that requires a mixture of X events and DO?
In you checkin comment you state "In the long run I think we should get rid of the AppKit event queue". What benefit do we get from only getting one event at a time from the X event queue? We would also loose the ability to post events into the queue from code. Or would you want to generate an X event from the NSEvent and put that in the X queue? A separate queue allows us to generate multiple events from one X event, or as seen in your scrollwheel code, to compress events.
I think that these changes are wrong and that we rather should try to find out how to better manage our event queue to get the benefits from it.
[Prev in Thread] | Current Thread | [Next in Thread] |