When subscribing to the key event on a given CKEDITOR instance, the event.data.keyCode property will be the sum of both the associated keyCode and any pressed modifier keyCodes e.g. ctrl/shift/alt keys as noted on the official documentation

  • keyCode : Number
    A number representing the key code (or a combination thereof). It is the sum of the current key code and the CKEDITOR.CTRL, CKEDITOR.SHIFT and CKEDITOR.ALT constants, if those are pressed.

In order to figure out what key as actually pressed (minus the modifier) we can use a simple sanitizeKeyCode method

Also included is a handy isModifier method that takes a keyCode and a modifierCode, and rrturns true if the keyCode is a sum of another key and that given modifier.