wrap_cursor_listener([this](std::shared_ptr<mir::input::CursorListener> const& default_)
-> std::shared_ptr<mir::input::CursorListener>
{
// This is a workaround for u8 desktop preview in 14.04 for the lack of client cursor API.
// We need to disable the cursor for XMir but leave it on for the desktop preview.
// Luckily as it stands they run inside seperate instances of USC. ~racarr
if (enable_hardware_cursor())
return default_;
else
return std::make_shared<NullCursorListener>();
});
override_the_server_status_listener([this]()
-> std::shared_ptr<mir::ServerStatusListener>
{
return std::make_shared<ServerStatusListener>(the_focus_controller());
});
override_the_window_manager_builder([this](msh::FocusController* focus_controller)
{
return std::make_shared<WindowManager>(
focus_controller,
the_shell_display_layout(),
the_session_coordinator(),
the_session_switcher());
});