                     if filtered
                         if not filter[e.keyCode]
                             return
+                        if filterExt.length
+                            for extraKey in filterExt
+                                if not keyModifiers[extraKey](e)
+                                    return
+
                     if prevent
                         e.preventDefault()
                     if stop

        left: 37
        right: 39

    makeEvent = (event, option) ->
        option = option or {}
        (code, args) ->

                    continue
                if not option.filtered
                    continue

                filtered = true
                if keyModifiers[k]
                    filterExt.push k
                    continue

                if keyCodes[k]
                    k = keyCodes[k]
                filter[k] = true
