The last weirdness is my condition for handling the center button of the navigator is
if (eventP->data.keyDown.chr == vchrRockerCenter)
is not being entered, because eventP->data.keyDown.chr is being set to 0x13D and vchrRockerCenter is defined as 0x0136. So, I hardwired my condition as
if (eventP->data.keyDown.chr == 0x13D) // navigator center
which did the trick -- any idea why that is?
You might have a bug if you write the code that way. I haven't looked up the keycode, but in the T5 and future devices the center rocker can been defined to have two behaviors: a normal press and something else on a long hold. It is implemented by sending a keyDown when pressed (vchrHardwareRockerCenter I think) and then if held long enough (and if the app didn't mark the vchrHardwareRockerCenter as handled) then it'll send a vchrRockerCenter.
So if you never are getting a vchrRockerCenter, then I bet you're accidentally returning "true" that you handled the vchrHardwareRockerCenter. Which you haven't, or shouldn't have anyway, unless you're something like a game and you don't want the special behavior on hold.
So keep looking for the vchrRockerCenter, and don't mark any keyDowns as being handled unless you really did. Or unless you need to override the standard behavior because you're an arcade game or whatever.
Of course I could be way off base since I didn't actually look up 0x13D :-)
-David Fedor PalmSource, Inc.
-- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/
