Correctly set UI properties to defaults when passed nil
Until now setting properties to nil
would just keep their previous value.
Second commit makes the Window widget properly declarative, resetting its position on update to whatever was set in properties.