Be more accurate about which handlers to fire change events for

I.e. don't fire for a handler that wasn't registered when the change happened.
Be more precise about which cursorActivity handlers to fire

Issue #2464