wp: fix behavior of transitions before advanced for first time
wp_transition_get_completed incorrectly returns TRUE for transitions that have not been advanced at least once, and hence are obviously not completed. This is because transitions start at STEP_NONE, and completed transition is also indicated by STEP_NONE.
Fix this by adding a private flag to track whether transition was started.
Fixes object managers sometimes missing object-changed events. How that happens is the following:
- object activation transitions are advanced in idle callback
- they are aborted on registry global removal events
- registry global removal event can arrive before the idle callback
- wp_object_abort_activation uses wp_transition_get_completed to determine whether transition was completed, and thinks the completion callback was already triggered
- object-manager.c:on_proxy_ready is then never triggered for the transition
- pending_objects counter does not get decremented
- WpObjectManager is left in the pending state, and never emits installed/objects-changed signals
Fixes #212 (closed), !332 (closed)
Edited by P V