187 + auto configuration = std::make_shared<msh::DefaultShellConfiguration>(the_display(), the_input_focus_selector(),
188 + the_surface_factory());
I think it would make sense to have DefaultServerConfiguration::the_shell_configuration(), since that's the part that users will want to change by overriding.
140 + virtual ~ShellConfiguration() {}
For new base classes/interfaces it is recommended to use "= default()" for the destructor, too, so that we get the noexcept guarantee. The price for this is that we need to explicitly mark destructors of derived classes as noexcept(true).
187 + auto configuration = std::make_ shared< msh::DefaultShe llConfiguration >(the_display( ), the_input_ focus_selector( ), factory( ));
188 + the_surface_
I think it would make sense to have DefaultServerCo nfiguration: :the_shell_ configuration( ), since that's the part that users will want to change by overriding.
140 + virtual ~ShellConfigura tion() {}
For new base classes/interfaces it is recommended to use "= default()" for the destructor, too, so that we get the noexcept guarantee. The price for this is that we need to explicitly mark destructors of derived classes as noexcept(true).
Some nits:
242 + : view_area( view_area) , selector( focus_selector) , surface_ factory( surface_ factory)
243 + input_focus_
244 + underlying_
':' should be indented 4 spaces (we don't use 2 space indentations in any case).
318 + : surface_ factory( config- >the_surface_ factory( )),
Likewise.
370 + : DefaultShellCon figuration( view_area, input_selector, surface_factory)
Likewise.
498 + : sequence( mt::fake_ shared( container) )
Likewise
648 + : session_ manager( mt::fake_ shared( config) )
Likewise.