// Check for unchanged responses (exactly unchanged, not equivalent).
// We also have to catch questions that the student has not yet attempted
- $sameresponses = !$state->last_graded->event == QUESTION_EVENTOPEN &&
- $QTYPES[$question->qtype]->compare_responses($question, $action, $state);
+ $sameresponses = $QTYPES[$question->qtype]->compare_responses($question, $action, $state);
+ if ($state->last_graded->event == QUESTION_EVENTOPEN && question_isgradingevent($action->event)) {
+ $sameresponses = false;
+ }
// If the response has not been changed then we do not have to process it again
// unless the attempt is closing or validation is requested