← Back to team overview

kicad-developers team mailing list archive

Chapter 53 in the glorious tale of wxWidgets event handling

 

There’s a bug that you can’t change layers while routing.  Turns out it’s really that you can’t execute most hotkeys found on <shift>ed keys while running a tool.

The problem is that wxEVT_CHAR_HOOK doesn’t do the key translation properly.  wxEVT_CHAR does, but we only get to that if we skip the event at the end of the tool’s event processing loop, which most tools don’t do.  (Selection tools, point editors, pickers, and a couple of others do skip, which is probably why this didn’t get reported earlier.)

I played around with a couple of ways to fix wxEVT_CHAR_HOOK.  Most of them don’t work, and the few egregious hacks I tried weren't cross-platform.

So I’m changing it so that most tools now skip at the end of their event loops.  I left out a couple that I felt were high risk (length tuning, for instance).  But there’s still enough risk that I’m 100% sure it will break something, I just haven’t a clue what.  So holler if you find anything that smells like it might be related.

Cheers,
Jeff.