Softkey codes are not reported on a normal Canvas (Known Issue)
Some key codes are not reported to the key-capturing methods of the Canvas class.
Some key codes are not reported through the keyPressed(), keyRepeated(), and keyReleased() methods of the Canvas class on a normal, non-full screen Canvas. This applies especially to the left, middle (when present), and right softkeys. Those are only reported back to the above key-capturing methods on full-screen Canvas instances.
The MIDP 2.0 specification says:
For some devices the keys used for commands may overlap with the keys that will deliver key code events to the canvas. If this is the case, the device will provide a means transparent to the application that enables the user to select a mode that determines whether these keys will deliver commands or key code events to the application.
This does not happen on all tested devices.
How to reproduce
- Download the attached File:NormalCanvasTest.zip file, which contains a test application (CanvasKeyTest.jad and CanvasKeyTest.jar).
- Install it using PC Suite or via Bluetooth.
- Start the application and go to "Normal Canvas". Press some keys, especially the left, middle (if existing), and right softkey, and you will notice that the key presses will not be reported to the key-capturing methods.
- Press '0' to go back to the main menu and select "Full Canvas". Press some keys, especially the left, middle (if existing), and right softkey, and you will notice that the key presses are reported correctly to the key-capturing methods.
Currently there is no solution. This is expected to be fixed in S60 3rd Edition Feature Pack 2.