Ensure the requested insets state is up to date

Previously, the client won't send the modified insets state to window
manager if the dispatched state and the local state are the same. The
following case can make the requested insets state at the server side
stale:

1. Window A requests an insets source to be invisible while having
   the control.
2. Window A loses the control.
3. The new control target requests the insets source to be visible.
4. Window A receives the new insets state from server.
5. Window A also requests the insets source to be visible while not
   having the control.
6. Window A gain the control.
7. Window A won't send the new requested state (visible) to window
   manager because the local state and the dispatched state are the
   same.
8. Window manager keeps assuming that window A is requesting the insets
   source to be invisible which is incorrect.

This CL stores what insets state is sent to server, and updates/sends
the state to server while gaining the control if the requested state is
changed.

Fix: 146964271
Test: Manual.
Change-Id: I6ee533d9316c769faef539bfb980197c351ee8d1
2 files changed