Good day dear community!
Can someone please help me to find documentation about how keyboard events works and how they go through the system.
I have a C++ application using UWP extensions where I have Windows::UI::Xaml::Window windows with it's CoreDispatcher and CoreWindow.
During initialization phase I install events handler for AcceleratorKeyActivated (core dispatcher event) and CharacterReceivedEvent (core window event).
I found out that If I press character key AcceleratorKeyActivated event occures first. Then, if I set Handled to True, event stops transmitting further; if I leave Handled as False, then CharacterReceivedEvent have a chance to be fired by system. Also if found out that there are some native (system default) event handlers. For example F7 key causes Caret Browsing system prompt to appear. But if I set Handled to True, system handler won't be invoked.
So, I am interested in:
1) Is there a documentation where keyboard's events emitting order is explained (I want to see something like "First KeyDown event is fired, then if not handled, it goes to AcceleratorKeyActivated , and after that it turns into CharacterReceivedEvent ")
2) Are there system default handlers and if there is a documentation that explains something like (If key event hasn't been handled by user it is passed to the system default handlers)
3) Is there a way to disable system default event handlers? For example I don't want caret browsing prompt to appear after F7 key has been pressed. Also I have my custom action bind for F7 key, and caret browsing prompt annoys users so much. For this moment I just check for if (arg->VirtualKey == VirtualKey::F7) arg->Handled = true; in AcceleratorKeyActivated callback, which looks ugly. It would be great to have a settings where I can disable system handlers.
Any suggestions are highly appreciated!
Best regards,
Sergey.