У тебя ошибка в последней строчке фкнкции (x4 должно быть вместо x3).
И ещё совет - лучше используй !!FU:E. А то когда в каждой строчке триггера стоит &(куча условий) - это совершенно нечитаемо (и писать так (по крайней мере мне) сложнее, да и выполняется это дольше).
Ну и вызов функции здесь абсолютно необязателен (на самом деле он тоже немножко тормозит выполнение).