|
| AbstractShell (std::shared_ptr< InputTargeter > const &input_targeter, std::shared_ptr< scene::SurfaceCoordinator > const &surface_coordinator, std::shared_ptr< scene::SessionCoordinator > const &session_coordinator, std::shared_ptr< scene::PromptSessionManager > const &prompt_session_manager, WindowManagerBuilder const &wm_builder) |
|
| ~AbstractShell () noexcept |
|
std::shared_ptr< scene::Session > | open_session (pid_t client_pid, std::string const &name, std::shared_ptr< frontend::EventSink > const &sink) override |
|
void | close_session (std::shared_ptr< scene::Session > const &session) override |
|
frontend::SurfaceId | create_surface (std::shared_ptr< scene::Session > const &session, scene::SurfaceCreationParameters const ¶ms, std::shared_ptr< frontend::EventSink > const &sink) override |
|
void | modify_surface (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, SurfaceSpecification const &modifications) override |
|
void | destroy_surface (std::shared_ptr< scene::Session > const &session, frontend::SurfaceId surface) override |
|
int | set_surface_attribute (std::shared_ptr< scene::Session > const &session, std::shared_ptr< scene::Surface > const &surface, MirSurfaceAttrib attrib, int value) override |
|
int | get_surface_attribute (std::shared_ptr< scene::Surface > const &surface, MirSurfaceAttrib attrib) override |
|
std::shared_ptr< scene::PromptSession > | start_prompt_session_for (std::shared_ptr< scene::Session > const &session, scene::PromptSessionCreationParameters const ¶ms) override |
|
void | add_prompt_provider_for (std::shared_ptr< scene::PromptSession > const &prompt_session, std::shared_ptr< scene::Session > const &session) override |
|
void | stop_prompt_session (std::shared_ptr< scene::PromptSession > const &prompt_session) override |
|
void | add_display (geometry::Rectangle const &area) override |
|
void | remove_display (geometry::Rectangle const &area) override |
|
bool | handle (MirEvent const &event) override |
|
|
Focus changes are notified to the derived class via the private setting_focus_to() functions.
- Note
- I think the FocusController interface is unnecessary as:
- the functions are only meaningful in the context of implementing a Shell
- the implementation of these functions is Shell behaviour Simply providing them as part of AbstractShell is probably adequate.
|
void | focus_next_session () override |
|
std::shared_ptr< scene::Session > | focused_session () const override |
|
void | set_focus_to (std::shared_ptr< scene::Session > const &focus_session, std::shared_ptr< scene::Surface > const &focus_surface) override |
|
std::shared_ptr< scene::Surface > | focused_surface () const override |
|
auto | surface_at (geometry::Point cursor) const -> std::shared_ptr< scene::Surface > override |
|
void | raise (SurfaceSet const &surfaces) override |
|
|
virtual | ~FocusController ()=default |
|
virtual | ~EventFilter ()=default |
|
Minimal Shell implementation with none of the necessary window management logic.