Skip to content

Compact overlay should allow resizing #1593

@BreeceW

Description

@BreeceW

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.

Windows Calculator in compact overlay mode being resized

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?

Metadata

Metadata

Labels

area-WindowingTopics related to the Windowing API in Windows App SDK, including AppWindow, presenters, etc.feature proposal

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions