Fixed GtkWindow/GtkWidget to properly emit hierarchy changed for embedded toplevels
Now GtkWindow takes some measures when setting toplevelness: - When a window becomes toplevel after being embedded it saves the visibility state and reshow's itself so that the window re-realizes and presents itself again automatically - When emitting hierarchy-changed, synthetically mark the toplevel as not anchored, this allows the hierarchy changed propagation to recurse properly. GtkWidget also takes care to unset the parent window *after* unparenting the widget and after emitting the heirarhcy changed that leaves a NULL toplevel. That means there are now 2 cycles of "hierarchy-changed" when removing an embedded toplevel from a parent, first one that makes the new toplevel a NULL one (since the toplevel flag is not yet restored), the second cycle makes the removed window toplevel again when setting the parent window to NULL.
Showing with 48 additions and 15 deletions