Class WindowSpecification

Nested Relationships

Nested Types

Class Documentation

class WindowSpecification

Unnamed Group

auto min_width() -> mir::optional_value<Width>&

Constrains how a window can be resized, see the corresponding properties on WindowInfo for details.

auto min_height() -> mir::optional_value<Height>&
auto max_width() -> mir::optional_value<Width>&
auto max_height() -> mir::optional_value<Height>&
auto width_inc() -> mir::optional_value<DeltaX>&
auto height_inc() -> mir::optional_value<DeltaY>&
auto min_aspect() -> mir::optional_value<AspectRatio>&
auto max_aspect() -> mir::optional_value<AspectRatio>&

Unnamed Group

auto depth_layer() const -> mir::optional_value<MirDepthLayer> const&

The depth layer of a child window is updated with the depth layer of its parent, but can be overridden.

auto depth_layer() -> mir::optional_value<MirDepthLayer>&

Unnamed Group

auto attached_edges() const -> mir::optional_value<MirPlacementGravity> const&

The set of window eges that are attched to edges of the output If attached to perpendicular edges, it is attached to the corner where the two edges intersect If attached to oposite edges (eg left and right), it is stretched across the output in that direction If all edges are specified, it takes up the entire output.

auto attached_edges() -> mir::optional_value<MirPlacementGravity>&

Unnamed Group

auto exclusive_rect() const -> mir::optional_value<mir::optional_value<mir::geometry::Rectangle>> const&

The area over which the window should not be occluded Only meaningful for windows attached to an edge If the outer optional is unset (the default), the window’s exclusive rect is not changed by this spec If the outer optional is set but the inner is not, the window’s exclusive rect is cleared.

auto exclusive_rect() -> mir::optional_value<mir::optional_value<mir::geometry::Rectangle>>&

Unnamed Group

auto ignore_exclusion_zones() const -> mir::optional_value<bool> const&

Decides whether or not this window should ignore the exclusion zones set by other windows. Only meaningful for windows attached to an edge.

auto ignore_exclusion_zones() -> mir::optional_value<bool>&

Unnamed Group

auto application_id() const -> mir::optional_value<std::string> const&

The D-bus service name and basename of the app’s .desktop file See

auto application_id() -> mir::optional_value<std::string>&

Unnamed Group

auto server_side_decorated() const -> mir::optional_value<bool> const&

If this window should have server-side decorations provided by Mir Currently, Mir only respects this value during surface construction.

auto server_side_decorated() -> mir::optional_value<bool>&

Unnamed Group

auto focus_mode() const -> mir::optional_value<MirFocusMode> const&

How the window should gain and lose focus.


Since MirAL 3.3

auto focus_mode() -> mir::optional_value<MirFocusMode>&

Unnamed Group

auto visible_on_lock_screen() const -> mir::optional_value<bool> const&

If this surface should be shown while the compositor is locked.


Since MirAL 3.9

auto visible_on_lock_screen() -> mir::optional_value<bool>&

Public Types

enum class InputReceptionMode


enumerator normal
enumerator receives_all_input

Public Functions

WindowSpecification(WindowSpecification const &that)
auto operator=(WindowSpecification const &that) -> WindowSpecification&
WindowSpecification(mir::shell::SurfaceSpecification const &spec)
auto top_left() const -> mir::optional_value<Point> const&
auto size() const -> mir::optional_value<Size> const&
auto name() const -> mir::optional_value<std::string> const&
auto output_id() const -> mir::optional_value<int> const&
auto type() const -> mir::optional_value<MirWindowType> const&
auto state() const -> mir::optional_value<MirWindowState> const&
auto preferred_orientation() const -> mir::optional_value<MirOrientationMode> const&
auto aux_rect() const -> mir::optional_value<Rectangle> const&
auto placement_hints() const -> mir::optional_value<MirPlacementHints> const&
auto window_placement_gravity() const -> mir::optional_value<MirPlacementGravity> const&
auto aux_rect_placement_gravity() const -> mir::optional_value<MirPlacementGravity> const&
auto aux_rect_placement_offset() const -> mir::optional_value<Displacement> const&
auto min_width() const -> mir::optional_value<Width> const&
auto min_height() const -> mir::optional_value<Height> const&
auto max_width() const -> mir::optional_value<Width> const&
auto max_height() const -> mir::optional_value<Height> const&
auto width_inc() const -> mir::optional_value<DeltaX> const&
auto height_inc() const -> mir::optional_value<DeltaY> const&
auto min_aspect() const -> mir::optional_value<AspectRatio> const&
auto max_aspect() const -> mir::optional_value<AspectRatio> const&
auto parent() const -> mir::optional_value<std::weak_ptr<mir::scene::Surface>> const&
auto input_shape() const -> mir::optional_value<std::vector<Rectangle>> const&
auto input_mode() const -> mir::optional_value<InputReceptionMode> const&
auto shell_chrome() const -> mir::optional_value<MirShellChrome> const&
auto confine_pointer() const -> mir::optional_value<MirPointerConfinementState> const&
auto userdata() const -> mir::optional_value<std::shared_ptr<void>> const&
auto top_left() -> mir::optional_value<Point>&
auto size() -> mir::optional_value<Size>&

The new size of the window frame (including any decorations). Will be adjusted based on min_width(), WindowInfo::max_width(), WindowInfo::min_height(), WindowInfo::max_height(), WindowInfo::min_aspect(), WindowInfo::max_aspect(), WindowInfo::width_inc() and WindowInfo::height_inc(). Set these to properties to their default values if they should be ignored.

auto name() -> mir::optional_value<std::string>&
auto output_id() -> mir::optional_value<int>&
auto type() -> mir::optional_value<MirWindowType>&
auto state() -> mir::optional_value<MirWindowState>&
auto preferred_orientation() -> mir::optional_value<MirOrientationMode>&
auto aux_rect() -> mir::optional_value<Rectangle>&

Relative to window’s surface’s CONTENT offset and size (not equal to the top_left and size exposed by this interface if server-side decorations are in use)

auto placement_hints() -> mir::optional_value<MirPlacementHints>&
auto window_placement_gravity() -> mir::optional_value<MirPlacementGravity>&
auto aux_rect_placement_gravity() -> mir::optional_value<MirPlacementGravity>&
auto aux_rect_placement_offset() -> mir::optional_value<Displacement>&
auto parent() -> mir::optional_value<std::weak_ptr<mir::scene::Surface>>&
auto input_shape() -> mir::optional_value<std::vector<Rectangle>>&
auto input_mode() -> mir::optional_value<InputReceptionMode>&
auto shell_chrome() -> mir::optional_value<MirShellChrome>&
auto confine_pointer() -> mir::optional_value<MirPointerConfinementState>&
auto userdata() -> mir::optional_value<std::shared_ptr<void>>&
struct AspectRatio

Public Members

unsigned width
unsigned height