text_input: Eliminate excessive messages
The focus procedure was not idempotent: setting focus on an already-focused surface would cause changes: either re-connect signals or re-send the enter event. This has been solved with additional checks.
Works best with !74 (merged) but doesn't rely on it.