19 #ifndef MIR_SHELL_FOCUS_CONTROLLER_H_
20 #define MIR_SHELL_FOCUS_CONTROLLER_H_
27 namespace geometry {
struct Point; }
28 namespace scene {
class Session;
class Surface; }
32 using SurfaceSet = std::set<std::weak_ptr<scene::Surface>, std::owner_less<std::weak_ptr<scene::Surface>>>;
45 virtual auto focused_session()
const -> std::shared_ptr<scene::Session> = 0;
48 std::shared_ptr<scene::Session>
const& focus_session,
49 std::shared_ptr<scene::Surface>
const& focus_surface) = 0;
55 virtual void raise(
SurfaceSet const& surfaces) = 0;
66 #endif // MIR_SHELL_FOCUS_CONTROLLER_H_
virtual ~FocusController()=default
All things Mir.
Definition: atomic_callback.h:25
FocusController()=default
std::set< std::weak_ptr< scene::Surface >, std::owner_less< std::weak_ptr< scene::Surface >>> SurfaceSet
Definition: focus_controller.h:32
Definition: focus_controller.h:38
FocusController & operator=(FocusController const &)=delete
virtual auto focused_session() const -> std::shared_ptr< scene::Session >=0
virtual void set_focus_to(std::shared_ptr< scene::Session > const &focus_session, std::shared_ptr< scene::Surface > const &focus_surface)=0
virtual std::shared_ptr< scene::Surface > focused_surface() const =0
virtual auto surface_at(geometry::Point cursor) const -> std::shared_ptr< scene::Surface >=0
virtual void focus_next_session()=0