2
* Copyright © 2013 Canonical Ltd.
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License version 3,
6
* as published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by: Robert Carr <robert.carr@canonical.com>
19
#include "fullscreen_placement_strategy.h"
21
#include "mir/scene/surface_creation_parameters.h"
22
#include "mir/shell/display_layout.h"
23
#include "mir/geometry/rectangle.h"
25
namespace me = mir::examples;
26
namespace ms = mir::scene;
27
namespace msh = mir::shell;
29
me::FullscreenPlacementStrategy::FullscreenPlacementStrategy(
30
std::shared_ptr<msh::DisplayLayout> const& display_layout)
31
: display_layout(display_layout)
35
ms::SurfaceCreationParameters me::FullscreenPlacementStrategy::place(ms::Session const& /* session */,
36
ms::SurfaceCreationParameters const& request_parameters)
38
auto placed_parameters = request_parameters;
40
geometry::Rectangle rect{request_parameters.top_left, request_parameters.size};
41
display_layout->size_to_output(rect);
42
placed_parameters.size = rect.size;
44
return placed_parameters;