I did not deal with the Corona SDK, but most likely it is necessary to make a table, where the keys are the ID of the buttons, and the values are boolean. Each button handler sets its button to true . After all the keys have been processed (the update method, maybe) we drive the checks of the combinations, and after that we reset the table.
PS: there may be native functions / tables for these purposes.
Solution pseudocode:
keyhandlers = {} create_keyhandler = function(keyid) return function() keyhandlers[keyid] = true end end update = function() -- This function must be called after all keyhandlers ... -- handle pressed keys if keyhandlers['Top'] and keyhandlers['Right'] then object:rotate(45) end ... -- reset keyhandlers keyhandlers = {} ... end addhandler('buttonTop', create_keyhandler('Top')) -- replace addhandler with real function or something else addhandler('buttonRight', create_keyhandler('Right'))