The `on_activate()` function of an item should only be called when the item was activated through the view, not through an external data change (e.g. changing an active item through Python). That is important because `on_activate()` is expected to do things like sending an undo push. This is now respected in tree and grid views.