Dyalog / ewc-client

Other
1 stars 4 forks source link

CurCell is changed too early in DemoScroll #189

Closed mkromberg closed 5 months ago

mkromberg commented 5 months ago

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?