Page 2 of 2

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 22 Jun 2022, 12:25
by christopherd
Sure, will do - thanks for the insight. I'll get back to you

(Update)
I'm afraid the windowing implementation we have doesn't use this; we use our own pump and messaging system to route the events to our Noesis code, which then updates the view (which returns false). All events are fired, and do reach a breakpoint to where we update the view.

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 23 Jun 2022, 11:44
by jsantos
Yes, I know you don't use our Window implementation. What I mean, is just opening our Login example, put the breakpoints in our Window.cpp (as mentioned above) to see the ordering of events that are sent to the view and then compare that with the order of view invocations in your application. Both applications use the same view, and one is working while the other one is not. So there must be a difference.

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 23 Jun 2022, 11:46
by christopherd
My mistake. Thanks. Will do

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 23 Jun 2022, 11:49
by jsantos
Great! Let me know if you need more help. Let's see if we discover what's going on.

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 15 Jul 2022, 11:33
by christopherd
Hey guys - I worked backwards with our implementation in our engine, and seem to have come to a solution. Most of this has come from the fact we use a low-level API to poll the keyboard every frame (WM_* messages are still processed selectively though). Our unicode events were using a different message queue which is shorter than the input queue, and arriving out-of-sync for start, and the speed we were reading and generating events was providing the effect of multiple keypresses (such as one short press of "a" resulting in "aaaaaaaaaaa", as every few ms we added a new press event).

Applying some selective filtering to these events, and ensuring the unicode events are in the right order, and simulating key repeat/delays led me to a working solution.

In the shortest terms, switching a fast-polling "game" model to an event-based "desktop WM_*" model helped line everything up.

Thanks for your help and suggestions, I appreciate it

Re: Integration to internal engine: Can't use Backspace/Arrows/Delete, all keydown/keyups not processed

Posted: 15 Jul 2022, 11:52
by sfernandez
Thanks for the update, marking this as solved then.