Refer to issue # 188 for instructions on how to start DemoScroll using Win32, in order to verify the expected behaviour.
In particular, note that if you start in cell [1,1] and press cursor right, you will see that when the KeyPress event is processed, CurCell is reported as [1,1] - because the KeyPress event has not yet been processed:
CurCell: 1 1
KeyPress: F1.VGRID.E1 KeyPress DC 0 40 0
If we run DemoScroll using JSWC, we see:
CurCell: 2 0
KeyPress: F1.VGRID KeyPress DC 0 40 0
Ignore the zero which is caused by missing row labels (as reported in #188). The important thing is that CurCell reports row 2 while processing the KeyPress event, which gives the impression that the KeyPress happened in the wrong Row.
I think the fundamental problem is that the client has no idea whether the KeyPress event has been processed, since the server never confirms this. We may need to respond to each Event message with confirmation from the server side, and the client should not update any state until this has happened?
Refer to issue # 188 for instructions on how to start DemoScroll using Win32, in order to verify the expected behaviour.
In particular, note that if you start in cell [1,1] and press cursor right, you will see that when the KeyPress event is processed, CurCell is reported as [1,1] - because the KeyPress event has not yet been processed:
CurCell: 1 1 KeyPress: F1.VGRID.E1 KeyPress DC 0 40 0
If we run DemoScroll using JSWC, we see:
CurCell: 2 0 KeyPress: F1.VGRID KeyPress DC 0 40 0
Ignore the zero which is caused by missing row labels (as reported in #188). The important thing is that CurCell reports row 2 while processing the KeyPress event, which gives the impression that the KeyPress happened in the wrong Row.
I think the fundamental problem is that the client has no idea whether the KeyPress event has been processed, since the server never confirms this. We may need to respond to each Event message with confirmation from the server side, and the client should not update any state until this has happened?