-
Notifications
You must be signed in to change notification settings - Fork 427
Compact overlay should allow resizing #1593
Description
Proposal: Compact overlay should allow resizing
Summary
The new CompactOverlayPresenter is described as “an ‘always on top’ window of a fixed size, with a 16:9 aspect ratio to allow for Picture-in-Picture like experiences.” There are three options for the initial size of the window, “Small,” “Medium,” and “Large,” however the size seems to be overridable by calling Resize on AppWindow. The user cannot resize the window via dragging its edges, nor is there an option to allow this.
Compact overlay windows should be resizable by the user to any size and aspect ratio by default, with APIs to configure this.
Rationale
- The UWP compact overlay allowed a custom initial size and always lets the user resize it
- Compact overlay isn’t just used for video (see Windows Calculator)
- Greater flexibility for both developer and user
Scope
| Capability | Priority |
|---|---|
| This proposal will allow end users to freely resize compact overlay windows | Must |
| This proposal will allow developers to specify whether windows can be resized | Could |
Important Notes
var presenter = CompactOverlayPresenter.Create();
presenter.InitialSize = CompactOverlaySize.Medium;
presenter.InitialSize = new CompactOverlaySize(300, 400);
presenter.ResizeMode = CompactOverlayResizeMode.Free; // Free should be default
presenter.ResizeMode = CompactOverlayResizeMode.Fixed; // This could be a Boolean CanResize
window.SetPresenter(presenter);Alternatively, window could just have a CanResize property, and compact overlay would just follow that.
UWP let users resize compact overlay windows, but only within a range specified by the system. This is arbitrary and not particularly helpful. There should not be a limit anymore, or the limit should be specified by the developer.
Resizing from the corners should preserve the aspect ratio (perhaps optionally). This is useful for the video scenario without negating the others too much. Resizing from the edges would allow the user to make the window any size they please. This is how it works in UWP today.
If the existing InitialSize is there to provide good defaults for videos, I support that, but it is important that you be able to open a compact overlay window at any size as well and be able to resize it later.
Open Questions
Is it even a good idea to make windows fixed size? This is probably almost always going to result in poor user experience.
Should sizing APIs be on the presenter at all? Why not allow compact overlay windows to be resizable, and if a developer wants to make them fixed, they could specify that on AppWindow?
