handleInput = function handleInput(e) {

            // Only intercept if handler set
            if (!guac_keyboard.onkeydown && !guac_keyboard.onkeyup) return;

            // Ignore events which have already been handled
            if (!markEvent(e)) return;

            // Type all content written
            if (e.data && !e.isComposing) {
                element.removeEventListener("compositionend", handleComposition, false);
                guac_keyboard.type(e.data);
            }

        }
Handles the given "input" event, typing the data within the input text.
If the event is complete (text is provided), handling of "compositionend"
events is suspended, as such events may conflict with input events.

@private
@param {InputEvent} e
    The "input" event to handle.