On Thu, Sep 08, 2011 at 12:56:23AM +0200, Damien Guibouret wrote:
Hello,
Here is the updated diff that adds the mouse event queue compaction to
what I already sent. In addition to that, getmouse checks if event is in
requested mask or not as there could be cases where KEY_MOUSE is returned
without the _nc_mouse_parse function being called (if _nc_mouse_inline
returns FALSE). If it is not in the mask it checks previous event until
getting a requested one or an invalid event (in this last case it returns
ERR).
I modified also the test/ncurses.c also to dump the whole queue when a
mouse key is detected.
hmm - some of it is interesting. But after applying the change, it's still
not
working properly for me. So my patch tonight reverts the (relatively
small)
change from early 2010 which is the basic issue, and we can pick apart this
patch.
Generally what I saw: the display in test/ncurses in response to mouse-4
(wheel-mouse-up) is clearing parts of the lines. The "*" expected to show
in response to mouse movement for TERM=xterm-1003 is not showing (most of
the response lines are blank). Reading through the changes, it seems that
you might still be assuming that detail about 64 vs 96 is incorrect. But
I'm testing with xterm in the modes that the wheel mouse and any-event
logic are designed for...
However, the queue-draining aspect is related to the change I'm temporarily
reverting. So that's an area to explore.
I think that if I can guide you toward setting up the same testcases,
then the integration process will go smoother. It would also help if
the patch were refactored into several phases, each of which would make
some specific improvement that could be tested.