diff --git a/.github/workflows/symbols-check.yml b/.github/workflows/symbols-check.yml index 0b8d67d3836..f36090d6b6e 100644 --- a/.github/workflows/symbols-check.yml +++ b/.github/workflows/symbols-check.yml @@ -41,4 +41,5 @@ jobs: RET=0 cmake --build build --target check-miral-symbols-map || RET=$? cmake --build build --target check-miroil-symbols-map || RET=$? + cmake --build build --target check-mirserver-symbols-map || RET=$? exit $RET \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index dbb579c6071..bf431169c6e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,8 +25,8 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(MIR_VERSION_MAJOR 2) -set(MIR_VERSION_MINOR 16) -set(MIR_VERSION_PATCH 4) +set(MIR_VERSION_MINOR 17) +set(MIR_VERSION_PATCH 0) add_compile_definitions(MIR_VERSION_MAJOR=${MIR_VERSION_MAJOR}) add_compile_definitions(MIR_VERSION_MINOR=${MIR_VERSION_MINOR}) diff --git a/debian/control b/debian/control index 1f68270160a..b5a66acec71 100644 --- a/debian/control +++ b/debian/control @@ -63,7 +63,7 @@ Vcs-Git: https://github.com/MirServer/mir #TODO: Packaging infrastructure for better dependency generation, # ala pkg-xorg's xviddriver:Provides and ABI detection. -Package: libmirserver60 +Package: libmirserver61 Section: libs Architecture: linux-any Multi-Arch: same @@ -142,7 +142,7 @@ Section: libdevel Architecture: linux-any Multi-Arch: same Pre-Depends: ${misc:Pre-Depends} -Depends: libmirserver60 (= ${binary:Version}), +Depends: libmirserver61 (= ${binary:Version}), libmirplatform-dev (= ${binary:Version}), libmircommon-dev (= ${binary:Version}), libglm-dev, @@ -154,6 +154,26 @@ Description: Display server for Ubuntu - development headers . Contains header files required to build Mir servers. +Package: libmirserver-internal-dev +Section: libdevel +Architecture: linux-any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Depends: libmirserver61 (= ${binary:Version}), + libmirplatform-dev (= ${binary:Version}), + libmircommon-dev (= ${binary:Version}), + libmircore-dev (= ${binary:Version}), + libmirserver-dev (= ${binary:Version}), + libglm-dev, + uuid-dev, + ${misc:Depends}, +Description: Display server for Ubuntu - internal development headers + Mir is a display server running on linux systems, with a focus on efficiency, + robust operation and a well-defined driver model. + . + This package contains internal headers with no stability guarantee, for servers + that wish to use functionality for which no public API exists yet. + Package: mirtest-dev Section: libdevel Architecture: linux-any diff --git a/debian/libmirserver-internal-dev.install b/debian/libmirserver-internal-dev.install new file mode 100644 index 00000000000..9562ee20be4 --- /dev/null +++ b/debian/libmirserver-internal-dev.install @@ -0,0 +1,2 @@ +usr/include/mirserver-internal +usr/lib/*/pkgconfig/mirserver-internal.pc \ No newline at end of file diff --git a/debian/libmirserver60.install b/debian/libmirserver60.install deleted file mode 100644 index 724289fcc94..00000000000 --- a/debian/libmirserver60.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/*/libmirserver.so.60 diff --git a/debian/libmirserver61.install b/debian/libmirserver61.install new file mode 100644 index 00000000000..0e7379ba642 --- /dev/null +++ b/debian/libmirserver61.install @@ -0,0 +1 @@ +usr/lib/*/libmirserver.so.61 diff --git a/src/include/server/mir/input/legacy_input_dispatchable.h b/src/include/server/mir/input/legacy_input_dispatchable.h deleted file mode 100644 index 589920a3fe8..00000000000 --- a/src/include/server/mir/input/legacy_input_dispatchable.h +++ /dev/null @@ -1,36 +0,0 @@ - /* - * Copyright © Canonical Ltd. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 or 3 as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef MIR_INPUT_LEGACY_INPUT_DISPATCHABLE_H_ -#define MIR_INPUT_LEGACY_INPUT_DISPATCHABLE_H_ - -#include "mir/dispatch/dispatchable.h" - -namespace mir -{ -namespace input -{ - -struct LegacyInputDispatchable : mir::dispatch::Dispatchable -{ - virtual void start() = 0; -}; - -} -} - -#endif - diff --git a/src/include/server/mir/shell/surface_ready_observer.h b/src/include/server/mir/shell/surface_ready_observer.h deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt index a3b10a80b26..9fda33ee171 100644 --- a/src/server/CMakeLists.txt +++ b/src/server/CMakeLists.txt @@ -36,6 +36,12 @@ configure_file( @ONLY ) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/mirserver-internal.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/mirserver-internal.pc + @ONLY +) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/version.h.in ${PROJECT_SOURCE_DIR}/include/server/mir/version.h @@ -154,8 +160,11 @@ install(DIRECTORY install(DIRECTORY ${CMAKE_SOURCE_DIR}/include/server/mir DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/mirserver" ) +install(DIRECTORY + ${CMAKE_SOURCE_DIR}/src/include/server/mir DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/mirserver-internal" +) -set(MIRSERVER_ABI 60) # Be sure to increment MIR_VERSION_MINOR at the same time +set(MIRSERVER_ABI 61) # Be sure to increment MIR_VERSION_MINOR at the same time set(symbol_map ${CMAKE_CURRENT_SOURCE_DIR}/symbols.map) set_target_properties( @@ -170,3 +179,33 @@ set_target_properties( install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mirserver.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig ) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mirserver-internal.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig +) + +add_custom_target( + generate-mirserver-symbols-map + COMMAND ${PROJECT_SOURCE_DIR}/tools/symbols_map_generator/main.py + --library-name mir_server + --version ${MIR_VERSION_MAJOR}.${MIR_VERSION_MINOR} + --symbols-map-path="${CMAKE_CURRENT_SOURCE_DIR}/symbols.map" + --internal-headers-directory="${PROJECT_SOURCE_DIR}/src/include/server" + --include-dirs="$,:>" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + +add_custom_target( + check-mirserver-symbols-map + COMMAND ${PROJECT_SOURCE_DIR}/tools/symbols_map_generator/main.py + --library-name mir_server + --version ${MIR_VERSION_MAJOR}.${MIR_VERSION_MINOR} + --symbols-map-path="${CMAKE_CURRENT_SOURCE_DIR}/symbols.map" + --internal-headers-directory="${PROJECT_SOURCE_DIR}/src/include/server" + --include-dirs "$,:>" + --diff + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + +add_custom_target(regenerate-mirserver-internal-debian-symbols + COMMAND ${PROJECT_SOURCE_DIR}/tools/symbols_map_generator/run.sh --library mir_server_internal --version ${MIR_VERSION_MAJOR}.${MIR_VERSION_MINOR} --output_symbols + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + VERBATIM) diff --git a/src/server/mirserver-internal.pc.in b/src/server/mirserver-internal.pc.in new file mode 100644 index 00000000000..03c1247756f --- /dev/null +++ b/src/server/mirserver-internal.pc.in @@ -0,0 +1,8 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +includedir=@PKGCONFIG_INCLUDEDIR@/mirserver-internal + +Name: mirserver-internal +Description: Mir server internal headers +Version: @MIR_VERSION@ +Requires: mirserver mircommon mirplatform mircore +Cflags: -I${includedir} diff --git a/src/server/symbols.map b/src/server/symbols.map index b01b6abec4a..4430311d6b9 100644 --- a/src/server/symbols.map +++ b/src/server/symbols.map @@ -1,51 +1,52 @@ -MIR_SERVER_2.17 { - global: +MIR_SERVER_INTERNAL_2.17 { +global: extern "C++" { VTT?for?mir::DefaultServerConfiguration; - VTT?for?mir::scene::ApplicationNotRespondingDetectorWrapper; + VTT?for?mir::DefaultServerStatusListener; + VTT?for?mir::shell::AbstractShell; + VTT?for?mir::shell::Shell; VTT?for?mir::shell::ShellWrapper; - VTT?for?mir::shell::SystemCompositorWindowManager; + mir::BasicCallback::BasicCallback*; + mir::BasicCallback::lock*; + mir::BasicCallback::operator*; + mir::BasicCallback::unlock*; mir::DefaultServerConfiguration::DefaultServerConfiguration*; mir::DefaultServerConfiguration::add_wayland_extension*; mir::DefaultServerConfiguration::default_reports*; - mir::DefaultServerConfiguration::new_ipc_factory*; mir::DefaultServerConfiguration::set_enabled_wayland_extensions*; mir::DefaultServerConfiguration::set_wayland_extension_filter*; mir::DefaultServerConfiguration::the_application_not_responding_detector*; mir::DefaultServerConfiguration::the_buffer_allocator*; mir::DefaultServerConfiguration::the_buffer_stream_factory*; - mir::DefaultServerConfiguration::the_clipboard*; mir::DefaultServerConfiguration::the_clock*; mir::DefaultServerConfiguration::the_composite_event_filter*; mir::DefaultServerConfiguration::the_compositor*; mir::DefaultServerConfiguration::the_compositor_report*; - mir::DefaultServerConfiguration::the_connection_creator*; - mir::DefaultServerConfiguration::the_connector*; - mir::DefaultServerConfiguration::the_connector_report*; mir::DefaultServerConfiguration::the_console_services*; - mir::DefaultServerConfiguration::the_coordinate_translator*; mir::DefaultServerConfiguration::the_cursor*; mir::DefaultServerConfiguration::the_cursor_images*; mir::DefaultServerConfiguration::the_cursor_listener*; mir::DefaultServerConfiguration::the_decoration_manager*; mir::DefaultServerConfiguration::the_default_cursor_image*; + mir::DefaultServerConfiguration::the_default_input_device_hub*; mir::DefaultServerConfiguration::the_display*; mir::DefaultServerConfiguration::the_display_buffer_compositor_factory*; mir::DefaultServerConfiguration::the_display_changer*; mir::DefaultServerConfiguration::the_display_configuration_controller*; + mir::DefaultServerConfiguration::the_display_configuration_observer*; + mir::DefaultServerConfiguration::the_display_configuration_observer_registrar*; mir::DefaultServerConfiguration::the_display_configuration_policy*; mir::DefaultServerConfiguration::the_display_platforms*; mir::DefaultServerConfiguration::the_display_report*; + mir::DefaultServerConfiguration::the_drag_icon_controller*; mir::DefaultServerConfiguration::the_emergency_cleanup*; mir::DefaultServerConfiguration::the_event_filter_chain_dispatcher*; mir::DefaultServerConfiguration::the_fatal_error_strategy*; + mir::DefaultServerConfiguration::the_focus_controller*; mir::DefaultServerConfiguration::the_frontend_display_changer*; mir::DefaultServerConfiguration::the_frontend_surface_stack*; mir::DefaultServerConfiguration::the_gl_config*; - mir::DefaultServerConfiguration::the_host_connection*; - mir::DefaultServerConfiguration::the_host_lifecycle_event_listener*; mir::DefaultServerConfiguration::the_idle_handler*; - mir::DefaultServerConfiguration::the_session_lock*; mir::DefaultServerConfiguration::the_idle_hub*; mir::DefaultServerConfiguration::the_input_device_hub*; mir::DefaultServerConfiguration::the_input_device_registry*; @@ -58,14 +59,13 @@ MIR_SERVER_2.17 { mir::DefaultServerConfiguration::the_key_mapper*; mir::DefaultServerConfiguration::the_keyboard_observer_registrar*; mir::DefaultServerConfiguration::the_logger*; + mir::DefaultServerConfiguration::the_main_clipboard*; mir::DefaultServerConfiguration::the_main_loop*; mir::DefaultServerConfiguration::the_mediating_display_changer*; - mir::DefaultServerConfiguration::the_message_processor_report*; mir::DefaultServerConfiguration::the_options*; mir::DefaultServerConfiguration::the_persistent_surface_store*; - mir::DefaultServerConfiguration::the_pixel_buffer*; - mir::DefaultServerConfiguration::the_prompt_connection_creator*; - mir::DefaultServerConfiguration::the_prompt_connector*; + mir::DefaultServerConfiguration::the_pointer_input_dispatcher*; + mir::DefaultServerConfiguration::the_primary_selection_clipboard*; mir::DefaultServerConfiguration::the_prompt_session_listener*; mir::DefaultServerConfiguration::the_prompt_session_manager*; mir::DefaultServerConfiguration::the_renderer_factory*; @@ -73,8 +73,8 @@ MIR_SERVER_2.17 { mir::DefaultServerConfiguration::the_scene*; mir::DefaultServerConfiguration::the_scene_report*; mir::DefaultServerConfiguration::the_screen_shooter*; - mir::DefaultServerConfiguration::the_screencast*; mir::DefaultServerConfiguration::the_seat*; + mir::DefaultServerConfiguration::the_seat_observer*; mir::DefaultServerConfiguration::the_seat_observer_registrar*; mir::DefaultServerConfiguration::the_server_action_queue*; mir::DefaultServerConfiguration::the_server_status_listener*; @@ -84,12 +84,11 @@ MIR_SERVER_2.17 { mir::DefaultServerConfiguration::the_session_event_handler_register*; mir::DefaultServerConfiguration::the_session_event_sink*; mir::DefaultServerConfiguration::the_session_listener*; - mir::DefaultServerConfiguration::the_session_mediator_observer_registrar*; + mir::DefaultServerConfiguration::the_session_lock*; mir::DefaultServerConfiguration::the_shared_library_prober_report*; mir::DefaultServerConfiguration::the_shell*; mir::DefaultServerConfiguration::the_shell_display_layout*; mir::DefaultServerConfiguration::the_shell_report*; - mir::DefaultServerConfiguration::the_snapshot_strategy*; mir::DefaultServerConfiguration::the_stop_callback*; mir::DefaultServerConfiguration::the_surface_factory*; mir::DefaultServerConfiguration::the_surface_input_dispatcher*; @@ -106,10 +105,43 @@ MIR_SERVER_2.17 { mir::DefaultServerConfiguration::wrap_display_configuration_policy*; mir::DefaultServerConfiguration::wrap_shell*; mir::DefaultServerConfiguration::wrap_surface_stack*; - mir::Executor::?Executor*; + mir::DefaultServerStatusListener::paused*; + mir::DefaultServerStatusListener::ready_for_user_input*; + mir::DefaultServerStatusListener::resumed*; + mir::DefaultServerStatusListener::started*; + mir::DefaultServerStatusListener::stop_receiving_input*; + mir::DisplayChanger::?DisplayChanger*; + mir::DisplayChanger::DisplayChanger*; + mir::DisplayChanger::operator*; + mir::DisplayServer::?DisplayServer*; + mir::DisplayServer::DisplayServer*; + mir::DisplayServer::run*; + mir::DisplayServer::stop*; + mir::GLibMainLoop::GLibMainLoop*; + mir::GLibMainLoop::create_alarm*; + mir::GLibMainLoop::enqueue*; + mir::GLibMainLoop::enqueue_with_guaranteed_execution*; + mir::GLibMainLoop::pause_processing_for*; + mir::GLibMainLoop::register_fd_handler*; + mir::GLibMainLoop::register_signal_handler*; + mir::GLibMainLoop::reprocess_all_sources*; + mir::GLibMainLoop::resume_processing_for*; + mir::GLibMainLoop::run*; + mir::GLibMainLoop::running*; + mir::GLibMainLoop::spawn*; + mir::GLibMainLoop::stop*; + mir::GLibMainLoop::unregister_fd_handler*; mir::LockableCallback::?LockableCallback*; mir::LockableCallback::LockableCallback*; mir::LockableCallback::operator*; + mir::LockableCallbackWrapper::LockableCallbackWrapper*; + mir::LockableCallbackWrapper::lock*; + mir::LockableCallbackWrapper::operator*; + mir::LockableCallbackWrapper::unlock*; + mir::ObserverMultiplexer::empty*; + mir::ObserverMultiplexer::register_early_observer*; + mir::ObserverMultiplexer::register_interest*; + mir::ObserverMultiplexer::unregister_interest*; mir::Server::Server*; mir::Server::add_configuration_option*; mir::Server::add_emergency_cleanup*; @@ -120,18 +152,14 @@ MIR_SERVER_2.17 { mir::Server::apply_settings*; mir::Server::exited_normally*; mir::Server::get_options*; - mir::Server::mir_socket_name*; - mir::Server::open_client_socket*; mir::Server::open_client_wayland*; mir::Server::open_prompt_socket*; mir::Server::open_wayland_client_socket*; mir::Server::override_the_application_not_responding_detector*; mir::Server::override_the_compositor*; - mir::Server::override_the_coordinate_translator*; mir::Server::override_the_cursor_images*; mir::Server::override_the_display_buffer_compositor_factory*; mir::Server::override_the_gl_config*; - mir::Server::override_the_host_lifecycle_event_listener*; mir::Server::override_the_input_dispatcher*; mir::Server::override_the_input_targeter*; mir::Server::override_the_logger*; @@ -144,6 +172,7 @@ MIR_SERVER_2.17 { mir::Server::override_the_shell*; mir::Server::override_the_window_manager_builder*; mir::Server::run*; + mir::Server::run_on_wayland_display*; mir::Server::set_command_line*; mir::Server::set_command_line_handler*; mir::Server::set_config_filename*; @@ -166,13 +195,11 @@ MIR_SERVER_2.17 { mir::Server::the_display_platforms*; mir::Server::the_focus_controller*; mir::Server::the_gl_config*; - mir::Server::the_graphics_platform*; mir::Server::the_input_device_hub*; mir::Server::the_input_targeter*; mir::Server::the_logger*; mir::Server::the_main_loop*; mir::Server::the_persistent_surface_store*; - mir::Server::the_session_lock*; mir::Server::the_prompt_session_listener*; mir::Server::the_prompt_session_manager*; mir::Server::the_rendering_platforms*; @@ -180,7 +207,7 @@ MIR_SERVER_2.17 { mir::Server::the_session_authorizer*; mir::Server::the_session_coordinator*; mir::Server::the_session_listener*; - mir::Server::the_session_mediator_observer_registrar*; + mir::Server::the_session_lock*; mir::Server::the_shell*; mir::Server::the_shell_display_layout*; mir::Server::the_surface_factory*; @@ -198,11 +225,16 @@ MIR_SERVER_2.17 { mir::ServerActionQueue::?ServerActionQueue*; mir::ServerActionQueue::ServerActionQueue*; mir::ServerActionQueue::operator*; + mir::ServerConfiguration::?ServerConfiguration*; + mir::ServerConfiguration::ServerConfiguration*; + mir::ServerConfiguration::operator*; mir::ServerStatusListener::?ServerStatusListener*; mir::ServerStatusListener::ServerStatusListener*; mir::ServerStatusListener::operator*; mir::check_for_termination_exception*; mir::clear_termination_exception*; + mir::compositor::BufferStream::?BufferStream*; + mir::compositor::Compositor::?Compositor*; mir::compositor::Compositor::Compositor*; mir::compositor::Compositor::operator*; mir::compositor::CompositorReport::?CompositorReport*; @@ -217,22 +249,57 @@ MIR_SERVER_2.17 { mir::compositor::DisplayListener::?DisplayListener*; mir::compositor::DisplayListener::DisplayListener*; mir::compositor::DisplayListener::operator*; + mir::compositor::Scene::?Scene*; mir::compositor::Scene::Scene*; mir::compositor::SceneElement::?SceneElement*; mir::compositor::SceneElement::SceneElement*; mir::compositor::SceneElement::operator*; + mir::compositor::ScreenShooter::?ScreenShooter*; + mir::compositor::ScreenShooter::ScreenShooter*; + mir::detail::FdSources::?FdSources*; + mir::detail::FdSources::FdSources*; + mir::detail::FdSources::add*; + mir::detail::FdSources::remove_all_owned_by*; + mir::detail::GMainContextHandle::?GMainContextHandle*; + mir::detail::GMainContextHandle::GMainContextHandle*; + mir::detail::GMainContextHandle::operator*; + mir::detail::GSourceHandle::?GSourceHandle*; + mir::detail::GSourceHandle::GSourceHandle*; + mir::detail::GSourceHandle::ensure_no_further_dispatch*; + mir::detail::GSourceHandle::operator*; + mir::detail::SignalSources::?SignalSources*; + mir::detail::SignalSources::SignalSources*; + mir::detail::SignalSources::add*; + mir::detail::add_idle_gsource*; + mir::detail::add_server_action_gsource*; + mir::detail::add_timer_gsource*; mir::frontend::BufferSink::?BufferSink*; mir::frontend::BufferSink::BufferSink*; mir::frontend::BufferSink::operator*; mir::frontend::BufferStream::?BufferStream*; mir::frontend::BufferStream::BufferStream*; mir::frontend::BufferStream::operator*; + mir::frontend::Connector::?Connector*; + mir::frontend::Connector::Connector*; + mir::frontend::Connector::operator*; + mir::frontend::DisplayChanger::?DisplayChanger*; + mir::frontend::DisplayChanger::DisplayChanger*; + mir::frontend::DisplayChanger::operator*; + mir::frontend::DragIconController::?DragIconController*; + mir::frontend::DragIconController::DragIconController*; + mir::frontend::DragIconController::operator*; + mir::frontend::EventSink::?EventSink*; + mir::frontend::EventSink::EventSink*; + mir::frontend::EventSink::operator*; + mir::frontend::InputConfigurationChanger::?InputConfigurationChanger*; + mir::frontend::InputConfigurationChanger::InputConfigurationChanger*; + mir::frontend::InputConfigurationChanger::operator*; + mir::frontend::PointerInputDispatcher::?PointerInputDispatcher*; + mir::frontend::PointerInputDispatcher::PointerInputDispatcher*; + mir::frontend::PointerInputDispatcher::operator*; mir::frontend::PromptSession::?PromptSession*; mir::frontend::PromptSession::PromptSession*; mir::frontend::PromptSession::operator*; - mir::frontend::Session::?Session*; - mir::frontend::Session::Session*; - mir::frontend::Session::operator*; mir::frontend::SessionAuthorizer::?SessionAuthorizer*; mir::frontend::SessionAuthorizer::SessionAuthorizer*; mir::frontend::SessionAuthorizer::operator*; @@ -243,16 +310,29 @@ MIR_SERVER_2.17 { mir::frontend::Surface::?Surface*; mir::frontend::Surface::Surface*; mir::frontend::Surface::operator*; + mir::frontend::SurfaceStack::?SurfaceStack*; + mir::frontend::SurfaceStack::SurfaceStack*; mir::frontend::get_session*; mir::frontend::get_standard_extensions*; mir::frontend::get_supported_extensions*; mir::frontend::get_window*; mir::graphics::CloneDisplayConfigurationPolicy::apply_to*; + mir::graphics::CloneDisplayConfigurationPolicy::confirm*; mir::graphics::DisplayConfigurationObserver::?DisplayConfigurationObserver*; mir::graphics::DisplayConfigurationObserver::DisplayConfigurationObserver*; mir::graphics::DisplayConfigurationObserver::operator*; + mir::graphics::NullDisplayConfigurationObserver::base_configuration_updated*; + mir::graphics::NullDisplayConfigurationObserver::catastrophic_configuration_error*; + mir::graphics::NullDisplayConfigurationObserver::configuration_applied*; + mir::graphics::NullDisplayConfigurationObserver::configuration_failed*; + mir::graphics::NullDisplayConfigurationObserver::configuration_updated_for_session*; + mir::graphics::NullDisplayConfigurationObserver::initial_configuration*; + mir::graphics::NullDisplayConfigurationObserver::session_configuration_applied*; + mir::graphics::NullDisplayConfigurationObserver::session_configuration_removed*; mir::graphics::SideBySideDisplayConfigurationPolicy::apply_to*; + mir::graphics::SideBySideDisplayConfigurationPolicy::confirm*; mir::graphics::SingleDisplayConfigurationPolicy::apply_to*; + mir::graphics::SingleDisplayConfigurationPolicy::confirm*; mir::input::CursorImages::?CursorImages*; mir::input::CursorImages::CursorImages*; mir::input::CursorImages::operator*; @@ -271,9 +351,17 @@ MIR_SERVER_2.17 { mir::input::InputDeviceObserver::InputDeviceObserver*; mir::input::InputDeviceObserver::operator*; mir::input::InputDispatcher::?InputDispatcher*; + mir::input::InputManager::?InputManager*; mir::input::InputManager::InputManager*; mir::input::InputManager::operator*; - mir::input::ResyncKeyboardDispatcher*; + mir::input::KeyboardObserver::?KeyboardObserver*; + mir::input::KeyboardObserver::KeyboardObserver*; + mir::input::KeyboardObserver::operator*; + mir::input::Scene::?Scene*; + mir::input::Scene::Scene*; + mir::input::Scene::operator*; + mir::input::Seat::?Seat*; + mir::input::Seat::Seat*; mir::input::SeatObserver::?SeatObserver*; mir::input::Surface::?Surface*; mir::input::Surface::Surface*; @@ -281,7 +369,16 @@ MIR_SERVER_2.17 { mir::input::TouchVisualizer::?TouchVisualizer*; mir::input::TouchVisualizer::TouchVisualizer*; mir::input::TouchVisualizer::operator*; + mir::input::VTFilter::?VTFilter*; + mir::input::VTFilter::VTFilter*; + mir::input::VTFilter::handle*; + mir::input::Validator::Validator*; + mir::input::Validator::validate_and_dispatch*; + mir::input::VirtualInputDevice::VirtualInputDevice*; + mir::input::VirtualInputDevice::if_started_then*; mir::input::default_cursor_size*; + mir::input::input_platform_from_graphics_module*; + mir::input::probe_input_platforms*; mir::report_exception*; mir::run_mir*; mir::scene::ApplicationNotRespondingDetector::?ApplicationNotRespondingDetector*; @@ -298,10 +395,40 @@ MIR_SERVER_2.17 { mir::scene::BufferStreamFactory::?BufferStreamFactory*; mir::scene::BufferStreamFactory::BufferStreamFactory*; mir::scene::BufferStreamFactory::operator*; - mir::scene::CoordinateTranslator::?CoordinateTranslator*; + mir::scene::ClipboardObserver::?ClipboardObserver*; + mir::scene::ClipboardObserver::ClipboardObserver*; + mir::scene::DataExchangeSource::?DataExchangeSource*; + mir::scene::DataExchangeSource::DataExchangeSource*; + mir::scene::IdleHub::?IdleHub*; + mir::scene::IdleHub::IdleHub*; + mir::scene::IdleStateObserver::?IdleStateObserver*; + mir::scene::IdleStateObserver::IdleStateObserver*; + mir::scene::NullObserver::?NullObserver*; + mir::scene::NullObserver::NullObserver*; + mir::scene::NullObserver::end_observation*; + mir::scene::NullObserver::operator*; + mir::scene::NullObserver::scene_changed*; + mir::scene::NullObserver::surface_added*; + mir::scene::NullObserver::surface_exists*; + mir::scene::NullObserver::surface_removed*; + mir::scene::NullObserver::surfaces_reordered*; + mir::scene::NullPromptSessionListener::prompt_provider_added*; + mir::scene::NullPromptSessionListener::prompt_provider_removed*; + mir::scene::NullPromptSessionListener::resuming*; + mir::scene::NullPromptSessionListener::starting*; + mir::scene::NullPromptSessionListener::stopping*; + mir::scene::NullPromptSessionListener::suspending*; mir::scene::NullSessionListener::?NullSessionListener*; mir::scene::NullSessionListener::NullSessionListener*; + mir::scene::NullSessionListener::buffer_stream_created*; + mir::scene::NullSessionListener::buffer_stream_destroyed*; + mir::scene::NullSessionListener::destroying_surface*; + mir::scene::NullSessionListener::focused*; mir::scene::NullSessionListener::operator*; + mir::scene::NullSessionListener::starting*; + mir::scene::NullSessionListener::stopping*; + mir::scene::NullSessionListener::surface_created*; + mir::scene::NullSessionListener::unfocused*; mir::scene::NullSurfaceObserver::?NullSurfaceObserver*; mir::scene::NullSurfaceObserver::NullSurfaceObserver*; mir::scene::NullSurfaceObserver::alpha_set_to*; @@ -312,57 +439,126 @@ MIR_SERVER_2.17 { mir::scene::NullSurfaceObserver::cursor_image_removed*; mir::scene::NullSurfaceObserver::cursor_image_set_to*; mir::scene::NullSurfaceObserver::depth_layer_set_to*; + mir::scene::NullSurfaceObserver::entered_output*; mir::scene::NullSurfaceObserver::frame_posted*; mir::scene::NullSurfaceObserver::hidden_set_to*; mir::scene::NullSurfaceObserver::input_consumed*; - mir::scene::NullSurfaceObserver::keymap_changed*; + mir::scene::NullSurfaceObserver::left_output*; mir::scene::NullSurfaceObserver::moved_to*; mir::scene::NullSurfaceObserver::operator*; mir::scene::NullSurfaceObserver::orientation_set_to*; mir::scene::NullSurfaceObserver::placed_relative*; mir::scene::NullSurfaceObserver::reception_mode_set_to*; mir::scene::NullSurfaceObserver::renamed*; - mir::scene::NullSurfaceObserver::start_drag_and_drop*; mir::scene::NullSurfaceObserver::transformation_set_to*; mir::scene::NullSurfaceObserver::window_resized_to*; mir::scene::Observer::?Observer*; mir::scene::Observer::Observer*; mir::scene::Observer::operator*; + mir::scene::OutputPropertiesCache::properties_for*; + mir::scene::OutputPropertiesCache::update_from*; mir::scene::PromptSessionListener::?PromptSessionListener*; mir::scene::PromptSessionListener::PromptSessionListener*; mir::scene::PromptSessionListener::operator*; mir::scene::PromptSessionManager::?PromptSessionManager*; mir::scene::PromptSessionManager::PromptSessionManager*; mir::scene::PromptSessionManager::operator*; + mir::scene::SceneChangeNotification::?SceneChangeNotification*; + mir::scene::SceneChangeNotification::SceneChangeNotification*; + mir::scene::SceneChangeNotification::end_observation*; + mir::scene::SceneChangeNotification::scene_changed*; + mir::scene::SceneChangeNotification::surface_added*; + mir::scene::SceneChangeNotification::surface_exists*; + mir::scene::SceneChangeNotification::surface_removed*; + mir::scene::SceneChangeNotification::surfaces_reordered*; + mir::scene::SceneReport::?SceneReport*; + mir::scene::SceneReport::SceneReport*; + mir::scene::SceneReport::operator*; + mir::scene::Session::?Session*; + mir::scene::Session::Session*; + mir::scene::Session::operator*; + mir::scene::SessionContainer::?SessionContainer*; + mir::scene::SessionContainer::SessionContainer*; + mir::scene::SessionContainer::for_each*; + mir::scene::SessionContainer::insert_session*; + mir::scene::SessionContainer::operator*; + mir::scene::SessionContainer::predecessor_of*; + mir::scene::SessionContainer::remove_session*; + mir::scene::SessionContainer::successor_of*; mir::scene::SessionCoordinator::?SessionCoordinator*; mir::scene::SessionCoordinator::SessionCoordinator*; mir::scene::SessionCoordinator::operator*; + mir::scene::SessionEventHandlerRegister::?SessionEventHandlerRegister*; + mir::scene::SessionEventHandlerRegister::SessionEventHandlerRegister*; + mir::scene::SessionEventHandlerRegister::operator*; + mir::scene::SessionEventSink::?SessionEventSink*; + mir::scene::SessionEventSink::SessionEventSink*; + mir::scene::SessionEventSink::operator*; mir::scene::SessionListener::?SessionListener*; mir::scene::SessionListener::SessionListener*; mir::scene::SessionListener::operator*; + mir::scene::SessionLock::?SessionLock*; + mir::scene::SessionLock::SessionLock*; + mir::scene::SessionLock::operator*; + mir::scene::SessionLockObserver::?SessionLockObserver*; + mir::scene::SessionLockObserver::SessionLockObserver*; + mir::scene::SessionLockObserver::operator*; + mir::scene::SurfaceEventSource::SurfaceEventSource*; + mir::scene::SurfaceEventSource::attrib_changed*; + mir::scene::SurfaceEventSource::client_surface_close_requested*; + mir::scene::SurfaceEventSource::content_resized_to*; + mir::scene::SurfaceEventSource::input_consumed*; + mir::scene::SurfaceEventSource::moved_to*; + mir::scene::SurfaceEventSource::orientation_set_to*; + mir::scene::SurfaceEventSource::placed_relative*; mir::scene::SurfaceFactory::?SurfaceFactory*; mir::scene::SurfaceFactory::SurfaceFactory*; mir::scene::SurfaceObserver::?SurfaceObserver*; mir::scene::SurfaceObserver::SurfaceObserver*; mir::scene::SurfaceObserver::operator*; + mir::scene::SurfaceObservers::SurfaceObservers*; + mir::scene::SurfaceObservers::alpha_set_to*; + mir::scene::SurfaceObservers::application_id_set_to*; + mir::scene::SurfaceObservers::attrib_changed*; + mir::scene::SurfaceObservers::client_surface_close_requested*; + mir::scene::SurfaceObservers::content_resized_to*; + mir::scene::SurfaceObservers::cursor_image_removed*; + mir::scene::SurfaceObservers::cursor_image_set_to*; + mir::scene::SurfaceObservers::depth_layer_set_to*; + mir::scene::SurfaceObservers::frame_posted*; + mir::scene::SurfaceObservers::hidden_set_to*; + mir::scene::SurfaceObservers::input_consumed*; + mir::scene::SurfaceObservers::moved_to*; + mir::scene::SurfaceObservers::orientation_set_to*; + mir::scene::SurfaceObservers::placed_relative*; + mir::scene::SurfaceObservers::reception_mode_set_to*; + mir::scene::SurfaceObservers::renamed*; + mir::scene::SurfaceObservers::transformation_set_to*; + mir::scene::SurfaceObservers::window_resized_to*; mir::scene::SurfaceStateTracker::SurfaceStateTracker*; mir::scene::SurfaceStateTracker::active_state*; mir::scene::SurfaceStateTracker::has*; mir::scene::SurfaceStateTracker::has_any*; + mir::scene::SurfaceStateTracker::operator*; mir::scene::SurfaceStateTracker::with*; mir::scene::SurfaceStateTracker::with_active_state*; mir::scene::SurfaceStateTracker::without*; - mir::scene::a_surface*; + mir::scene::TextInputChange::TextInputChange*; + mir::scene::TextInputChangeHandler::?TextInputChangeHandler*; + mir::scene::TextInputChangeHandler::TextInputChangeHandler*; + mir::scene::TextInputHub::?TextInputHub*; + mir::scene::TextInputStateObserver::?TextInputStateObserver*; + mir::scene::TextInputStateObserver::TextInputStateObserver*; mir::scene::operator*; mir::shell::AbstractShell::?AbstractShell*; mir::shell::AbstractShell::AbstractShell*; mir::shell::AbstractShell::add_display*; mir::shell::AbstractShell::add_prompt_provider_for*; - mir::shell::AbstractShell::clear_drag_and_drop_handle*; mir::shell::AbstractShell::close_session*; mir::shell::AbstractShell::create_surface*; mir::shell::AbstractShell::destroy_surface*; mir::shell::AbstractShell::focus_next_session*; + mir::shell::AbstractShell::focus_prev_session*; mir::shell::AbstractShell::focused_session*; mir::shell::AbstractShell::focused_surface*; mir::shell::AbstractShell::get_surface_attribute*; @@ -372,54 +568,18 @@ MIR_SERVER_2.17 { mir::shell::AbstractShell::raise*; mir::shell::AbstractShell::raise_surface*; mir::shell::AbstractShell::remove_display*; - mir::shell::AbstractShell::request_drag_and_drop*; mir::shell::AbstractShell::request_move*; - mir::shell::AbstractShell::set_drag_and_drop_handle*; + mir::shell::AbstractShell::request_resize*; + mir::shell::AbstractShell::send_to_back*; mir::shell::AbstractShell::set_focus_to*; + mir::shell::AbstractShell::set_popup_grab_tree*; mir::shell::AbstractShell::set_surface_attribute*; mir::shell::AbstractShell::start_prompt_session_for*; mir::shell::AbstractShell::stop_prompt_session*; mir::shell::AbstractShell::surface_at*; - mir::shell::AbstractShell::update_focused_surface_confined_region*; - mir::shell::BasicWindowManager::?BasicWindowManager*; - mir::shell::BasicWindowManager::BasicWindowManager*; - mir::shell::BasicWindowManager::active_display*; - mir::shell::BasicWindowManager::add_display*; - mir::shell::BasicWindowManager::add_session*; - mir::shell::BasicWindowManager::add_surface*; - mir::shell::BasicWindowManager::clear_drag_and_drop_handle*; - mir::shell::BasicWindowManager::find_session*; - mir::shell::BasicWindowManager::focus_next_session*; - mir::shell::BasicWindowManager::focused_session*; - mir::shell::BasicWindowManager::focused_surface*; - mir::shell::BasicWindowManager::forget*; - mir::shell::BasicWindowManager::handle_keyboard_event*; - mir::shell::BasicWindowManager::handle_pointer_event*; - mir::shell::BasicWindowManager::handle_raise_surface*; - mir::shell::BasicWindowManager::handle_request_move*; - mir::shell::BasicWindowManager::handle_touch_event*; - mir::shell::BasicWindowManager::info_for*; - mir::shell::BasicWindowManager::modify_surface*; - mir::shell::BasicWindowManager::raise_tree*; - mir::shell::BasicWindowManager::remove_display*; - mir::shell::BasicWindowManager::remove_session*; - mir::shell::BasicWindowManager::remove_surface*; - mir::shell::BasicWindowManager::set_drag_and_drop_handle*; - mir::shell::BasicWindowManager::set_focus_to*; - mir::shell::BasicWindowManager::set_surface_attribute*; - mir::shell::BasicWindowManager::surface_at*; - mir::shell::CanonicalWindowManagerPolicy::CanonicalWindowManagerPolicy*; - mir::shell::CanonicalWindowManagerPolicy::handle_delete_surface*; - mir::shell::CanonicalWindowManagerPolicy::handle_displays_updated*; - mir::shell::CanonicalWindowManagerPolicy::handle_keyboard_event*; - mir::shell::CanonicalWindowManagerPolicy::handle_modify_surface*; - mir::shell::CanonicalWindowManagerPolicy::handle_new_surface*; - mir::shell::CanonicalWindowManagerPolicy::handle_place_new_surface*; - mir::shell::CanonicalWindowManagerPolicy::handle_pointer_event*; - mir::shell::CanonicalWindowManagerPolicy::handle_raise_surface*; - mir::shell::CanonicalWindowManagerPolicy::handle_session_info_updated*; - mir::shell::CanonicalWindowManagerPolicy::handle_set_state*; - mir::shell::CanonicalWindowManagerPolicy::handle_touch_event*; + mir::shell::AbstractShell::surface_ready*; + mir::shell::AbstractShell::swap_z_order*; + mir::shell::DefaultWindowManager::handle_keyboard_event*; mir::shell::DisplayConfigurationController::?DisplayConfigurationController*; mir::shell::DisplayConfigurationController::DisplayConfigurationController*; mir::shell::DisplayConfigurationController::operator*; @@ -429,6 +589,8 @@ MIR_SERVER_2.17 { mir::shell::FocusController::?FocusController*; mir::shell::FocusController::FocusController*; mir::shell::FocusController::operator*; + mir::shell::IdleHandler::?IdleHandler*; + mir::shell::IdleHandler::IdleHandler*; mir::shell::InputTargeter::?InputTargeter*; mir::shell::InputTargeter::InputTargeter*; mir::shell::InputTargeter::operator*; @@ -442,7 +604,6 @@ MIR_SERVER_2.17 { mir::shell::ShellWrapper::ShellWrapper*; mir::shell::ShellWrapper::add_display*; mir::shell::ShellWrapper::add_prompt_provider_for*; - mir::shell::ShellWrapper::clear_drag_and_drop_handle*; mir::shell::ShellWrapper::close_session*; mir::shell::ShellWrapper::create_surface*; mir::shell::ShellWrapper::destroy_surface*; @@ -457,24 +618,20 @@ MIR_SERVER_2.17 { mir::shell::ShellWrapper::raise*; mir::shell::ShellWrapper::raise_surface*; mir::shell::ShellWrapper::remove_display*; - mir::shell::ShellWrapper::request_drag_and_drop*; mir::shell::ShellWrapper::request_move*; mir::shell::ShellWrapper::request_resize*; - mir::shell::ShellWrapper::set_drag_and_drop_handle*; + mir::shell::ShellWrapper::send_to_back*; mir::shell::ShellWrapper::set_focus_to*; + mir::shell::ShellWrapper::set_popup_grab_tree*; mir::shell::ShellWrapper::set_surface_attribute*; mir::shell::ShellWrapper::start_prompt_session_for*; mir::shell::ShellWrapper::stop_prompt_session*; mir::shell::ShellWrapper::surface_at*; - mir::shell::SurfaceInfo::SurfaceInfo*; - mir::shell::SurfaceInfo::can_be_active*; - mir::shell::SurfaceInfo::can_morph_to*; - mir::shell::SurfaceInfo::constrain_resize*; - mir::shell::SurfaceInfo::is_visible*; - mir::shell::SurfaceInfo::must_have_parent*; - mir::shell::SurfaceInfo::must_not_have_parent*; - mir::shell::SurfaceInfo::needs_titlebar*; + mir::shell::ShellWrapper::surface_ready*; + mir::shell::ShellWrapper::swap_z_order*; mir::shell::SurfaceSpecification::is_empty*; + mir::shell::SurfaceSpecification::set_size*; + mir::shell::SurfaceSpecification::update_from*; mir::shell::SurfaceStack::?SurfaceStack*; mir::shell::SurfaceStack::SurfaceStack*; mir::shell::SurfaceStack::operator*; @@ -482,34 +639,17 @@ MIR_SERVER_2.17 { mir::shell::SurfaceStackWrapper::add_surface*; mir::shell::SurfaceStackWrapper::raise*; mir::shell::SurfaceStackWrapper::remove_surface*; + mir::shell::SurfaceStackWrapper::send_to_back*; mir::shell::SurfaceStackWrapper::surface_at*; + mir::shell::SurfaceStackWrapper::swap_z_order*; mir::shell::SystemCompositorWindowManager::SystemCompositorWindowManager*; - mir::shell::SystemCompositorWindowManager::add_display*; - mir::shell::SystemCompositorWindowManager::add_session*; - mir::shell::SystemCompositorWindowManager::add_surface*; - mir::shell::SystemCompositorWindowManager::handle_keyboard_event*; - mir::shell::SystemCompositorWindowManager::handle_pointer_event*; - mir::shell::SystemCompositorWindowManager::handle_raise_surface*; - mir::shell::SystemCompositorWindowManager::handle_request_move*; - mir::shell::SystemCompositorWindowManager::handle_request_resize*; - mir::shell::SystemCompositorWindowManager::handle_touch_event*; - mir::shell::SystemCompositorWindowManager::modify_surface*; mir::shell::SystemCompositorWindowManager::on_session_added*; mir::shell::SystemCompositorWindowManager::on_session_ready*; mir::shell::SystemCompositorWindowManager::on_session_removed*; - mir::shell::SystemCompositorWindowManager::remove_display*; - mir::shell::SystemCompositorWindowManager::remove_session*; - mir::shell::SystemCompositorWindowManager::remove_surface*; - mir::shell::SystemCompositorWindowManager::set_surface_attribute*; - mir::shell::WindowManagementPolicy::?WindowManagementPolicy*; - mir::shell::WindowManagementPolicy::WindowManagementPolicy*; - mir::shell::WindowManagementPolicy::operator*; mir::shell::WindowManager::?WindowManager*; mir::shell::WindowManager::WindowManager*; mir::shell::WindowManager::operator*; - mir::shell::WindowManagerTools::?WindowManagerTools*; - mir::shell::WindowManagerTools::WindowManagerTools*; - mir::shell::WindowManagerTools::operator*; + mir::shell::operator*; mir::terminate_with_current_exception*; mir::time::Alarm::?Alarm*; mir::time::Alarm::Alarm*; @@ -517,25 +657,160 @@ MIR_SERVER_2.17 { mir::time::AlarmFactory::?AlarmFactory*; mir::time::AlarmFactory::AlarmFactory*; mir::time::AlarmFactory::operator*; - non-virtual?thunk?to?mir::Executor::?Executor*; + non-virtual?thunk?to?mir::BasicCallback::lock*; + non-virtual?thunk?to?mir::BasicCallback::operator*; + non-virtual?thunk?to?mir::BasicCallback::unlock*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::add_wayland_extension*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::set_enabled_wayland_extensions*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::set_wayland_extension_filter*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_application_not_responding_detector*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_buffer_allocator*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_buffer_stream_factory*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_clock*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_composite_event_filter*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_compositor*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_compositor_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_console_services*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_cursor*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_cursor_images*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_cursor_listener*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_decoration_manager*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_default_cursor_image*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_buffer_compositor_factory*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_changer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_configuration_controller*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_configuration_policy*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_platforms*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_display_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_drag_icon_controller*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_emergency_cleanup*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_event_filter_chain_dispatcher*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_fatal_error_strategy*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_frontend_display_changer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_frontend_surface_stack*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_gl_config*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_idle_handler*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_idle_hub*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_device_hub*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_device_registry*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_dispatcher*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_manager*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_reading_multiplexer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_scene*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_input_targeter*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_key_mapper*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_keyboard_observer_registrar*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_logger*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_main_clipboard*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_main_loop*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_mediating_display_changer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_persistent_surface_store*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_pointer_input_dispatcher*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_primary_selection_clipboard*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_prompt_session_listener*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_prompt_session_manager*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_renderer_factory*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_rendering_platforms*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_scene*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_scene_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_screen_shooter*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_seat*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_seat_observer_registrar*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_server_action_queue*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_server_status_listener*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_authorizer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_container*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_coordinator*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_event_handler_register*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_event_sink*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_listener*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_session_lock*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_shared_library_prober_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_shell*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_shell_display_layout*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_shell_report*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_stop_callback*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_surface_factory*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_surface_input_dispatcher*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_surface_stack*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_text_input_hub*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_touch_visualizer*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_wayland_connector*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_window_manager_builder*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::the_xwayland_connector*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_application_not_responding_detector*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_cursor*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_cursor_listener*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_display_buffer_compositor_factory*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_display_configuration_policy*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_shell*; + non-virtual?thunk?to?mir::DefaultServerConfiguration::wrap_surface_stack*; + non-virtual?thunk?to?mir::DefaultServerStatusListener::paused*; + non-virtual?thunk?to?mir::DefaultServerStatusListener::ready_for_user_input*; + non-virtual?thunk?to?mir::DefaultServerStatusListener::resumed*; + non-virtual?thunk?to?mir::DefaultServerStatusListener::started*; + non-virtual?thunk?to?mir::DefaultServerStatusListener::stop_receiving_input*; + non-virtual?thunk?to?mir::DisplayChanger::?DisplayChanger*; + non-virtual?thunk?to?mir::GLibMainLoop::create_alarm*; + non-virtual?thunk?to?mir::GLibMainLoop::enqueue*; + non-virtual?thunk?to?mir::GLibMainLoop::enqueue_with_guaranteed_execution*; + non-virtual?thunk?to?mir::GLibMainLoop::pause_processing_for*; + non-virtual?thunk?to?mir::GLibMainLoop::register_fd_handler*; + non-virtual?thunk?to?mir::GLibMainLoop::register_signal_handler*; + non-virtual?thunk?to?mir::GLibMainLoop::resume_processing_for*; + non-virtual?thunk?to?mir::GLibMainLoop::run*; + non-virtual?thunk?to?mir::GLibMainLoop::running*; + non-virtual?thunk?to?mir::GLibMainLoop::spawn*; + non-virtual?thunk?to?mir::GLibMainLoop::stop*; + non-virtual?thunk?to?mir::GLibMainLoop::unregister_fd_handler*; non-virtual?thunk?to?mir::LockableCallback::?LockableCallback*; + non-virtual?thunk?to?mir::LockableCallbackWrapper::lock*; + non-virtual?thunk?to?mir::LockableCallbackWrapper::operator*; + non-virtual?thunk?to?mir::LockableCallbackWrapper::unlock*; + non-virtual?thunk?to?mir::ObserverMultiplexer::register_early_observer*; + non-virtual?thunk?to?mir::ObserverMultiplexer::register_interest*; + non-virtual?thunk?to?mir::ObserverMultiplexer::unregister_interest*; non-virtual?thunk?to?mir::ServerActionQueue::?ServerActionQueue*; + non-virtual?thunk?to?mir::ServerConfiguration::?ServerConfiguration*; non-virtual?thunk?to?mir::ServerStatusListener::?ServerStatusListener*; + non-virtual?thunk?to?mir::compositor::BufferStream::?BufferStream*; + non-virtual?thunk?to?mir::compositor::Compositor::?Compositor*; non-virtual?thunk?to?mir::compositor::CompositorReport::?CompositorReport*; non-virtual?thunk?to?mir::compositor::DisplayBufferCompositor::?DisplayBufferCompositor*; non-virtual?thunk?to?mir::compositor::DisplayBufferCompositorFactory::?DisplayBufferCompositorFactory*; non-virtual?thunk?to?mir::compositor::DisplayListener::?DisplayListener*; + non-virtual?thunk?to?mir::compositor::Scene::?Scene*; non-virtual?thunk?to?mir::compositor::SceneElement::?SceneElement*; + non-virtual?thunk?to?mir::compositor::ScreenShooter::?ScreenShooter*; non-virtual?thunk?to?mir::frontend::BufferSink::?BufferSink*; non-virtual?thunk?to?mir::frontend::BufferStream::?BufferStream*; + non-virtual?thunk?to?mir::frontend::Connector::?Connector*; + non-virtual?thunk?to?mir::frontend::DisplayChanger::?DisplayChanger*; + non-virtual?thunk?to?mir::frontend::DragIconController::?DragIconController*; + non-virtual?thunk?to?mir::frontend::EventSink::?EventSink*; + non-virtual?thunk?to?mir::frontend::InputConfigurationChanger::?InputConfigurationChanger*; + non-virtual?thunk?to?mir::frontend::PointerInputDispatcher::?PointerInputDispatcher*; non-virtual?thunk?to?mir::frontend::PromptSession::?PromptSession*; - non-virtual?thunk?to?mir::frontend::Session::?Session*; non-virtual?thunk?to?mir::frontend::SessionAuthorizer::?SessionAuthorizer*; non-virtual?thunk?to?mir::frontend::Surface::?Surface*; + non-virtual?thunk?to?mir::frontend::SurfaceStack::?SurfaceStack*; non-virtual?thunk?to?mir::graphics::CloneDisplayConfigurationPolicy::apply_to*; + non-virtual?thunk?to?mir::graphics::CloneDisplayConfigurationPolicy::confirm*; non-virtual?thunk?to?mir::graphics::DisplayConfigurationObserver::?DisplayConfigurationObserver*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::base_configuration_updated*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::catastrophic_configuration_error*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::configuration_applied*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::configuration_failed*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::configuration_updated_for_session*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::initial_configuration*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::session_configuration_applied*; + non-virtual?thunk?to?mir::graphics::NullDisplayConfigurationObserver::session_configuration_removed*; non-virtual?thunk?to?mir::graphics::SideBySideDisplayConfigurationPolicy::apply_to*; + non-virtual?thunk?to?mir::graphics::SideBySideDisplayConfigurationPolicy::confirm*; non-virtual?thunk?to?mir::graphics::SingleDisplayConfigurationPolicy::apply_to*; + non-virtual?thunk?to?mir::graphics::SingleDisplayConfigurationPolicy::confirm*; non-virtual?thunk?to?mir::input::CursorImages::?CursorImages*; non-virtual?thunk?to?mir::input::CursorListener::?CursorListener*; non-virtual?thunk?to?mir::input::Device::?Device*; @@ -543,52 +818,127 @@ MIR_SERVER_2.17 { non-virtual?thunk?to?mir::input::InputDeviceHub::?InputDeviceHub*; non-virtual?thunk?to?mir::input::InputDeviceObserver::?InputDeviceObserver*; non-virtual?thunk?to?mir::input::InputDispatcher::?InputDispatcher*; + non-virtual?thunk?to?mir::input::InputManager::?InputManager*; + non-virtual?thunk?to?mir::input::KeyboardObserver::?KeyboardObserver*; + non-virtual?thunk?to?mir::input::Scene::?Scene*; + non-virtual?thunk?to?mir::input::Seat::?Seat*; non-virtual?thunk?to?mir::input::SeatObserver::?SeatObserver*; non-virtual?thunk?to?mir::input::Surface::?Surface*; non-virtual?thunk?to?mir::input::TouchVisualizer::?TouchVisualizer*; + non-virtual?thunk?to?mir::input::VTFilter::?VTFilter*; + non-virtual?thunk?to?mir::input::VTFilter::handle*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetector::?ApplicationNotRespondingDetector*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetector::Observer::?Observer*; + non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::?ApplicationNotRespondingDetectorWrapper*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::pong_received*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::register_observer*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::register_session*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::unregister_observer*; non-virtual?thunk?to?mir::scene::ApplicationNotRespondingDetectorWrapper::unregister_session*; non-virtual?thunk?to?mir::scene::BufferStreamFactory::?BufferStreamFactory*; - non-virtual?thunk?to?mir::scene::CoordinateTranslator::?CoordinateTranslator*; + non-virtual?thunk?to?mir::scene::ClipboardObserver::?ClipboardObserver*; + non-virtual?thunk?to?mir::scene::DataExchangeSource::?DataExchangeSource*; + non-virtual?thunk?to?mir::scene::IdleHub::?IdleHub*; + non-virtual?thunk?to?mir::scene::IdleStateObserver::?IdleStateObserver*; + non-virtual?thunk?to?mir::scene::NullObserver::?NullObserver*; + non-virtual?thunk?to?mir::scene::NullObserver::end_observation*; + non-virtual?thunk?to?mir::scene::NullObserver::scene_changed*; + non-virtual?thunk?to?mir::scene::NullObserver::surface_added*; + non-virtual?thunk?to?mir::scene::NullObserver::surface_exists*; + non-virtual?thunk?to?mir::scene::NullObserver::surface_removed*; + non-virtual?thunk?to?mir::scene::NullObserver::surfaces_reordered*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::prompt_provider_added*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::prompt_provider_removed*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::resuming*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::starting*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::stopping*; + non-virtual?thunk?to?mir::scene::NullPromptSessionListener::suspending*; non-virtual?thunk?to?mir::scene::NullSessionListener::?NullSessionListener*; + non-virtual?thunk?to?mir::scene::NullSessionListener::buffer_stream_created*; + non-virtual?thunk?to?mir::scene::NullSessionListener::buffer_stream_destroyed*; + non-virtual?thunk?to?mir::scene::NullSessionListener::destroying_surface*; + non-virtual?thunk?to?mir::scene::NullSessionListener::focused*; + non-virtual?thunk?to?mir::scene::NullSessionListener::starting*; + non-virtual?thunk?to?mir::scene::NullSessionListener::stopping*; + non-virtual?thunk?to?mir::scene::NullSessionListener::surface_created*; + non-virtual?thunk?to?mir::scene::NullSessionListener::unfocused*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::?NullSurfaceObserver*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::alpha_set_to*; + non-virtual?thunk?to?mir::scene::NullSurfaceObserver::application_id_set_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::attrib_changed*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::client_surface_close_requested*; + non-virtual?thunk?to?mir::scene::NullSurfaceObserver::content_resized_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::cursor_image_removed*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::cursor_image_set_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::depth_layer_set_to*; + non-virtual?thunk?to?mir::scene::NullSurfaceObserver::entered_output*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::frame_posted*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::hidden_set_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::input_consumed*; - non-virtual?thunk?to?mir::scene::NullSurfaceObserver::keymap_changed*; + non-virtual?thunk?to?mir::scene::NullSurfaceObserver::left_output*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::moved_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::orientation_set_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::placed_relative*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::reception_mode_set_to*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::renamed*; - non-virtual?thunk?to?mir::scene::NullSurfaceObserver::resized_to*; - non-virtual?thunk?to?mir::scene::NullSurfaceObserver::start_drag_and_drop*; non-virtual?thunk?to?mir::scene::NullSurfaceObserver::transformation_set_to*; + non-virtual?thunk?to?mir::scene::NullSurfaceObserver::window_resized_to*; non-virtual?thunk?to?mir::scene::Observer::?Observer*; non-virtual?thunk?to?mir::scene::PromptSessionListener::?PromptSessionListener*; non-virtual?thunk?to?mir::scene::PromptSessionManager::?PromptSessionManager*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::?SceneChangeNotification*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::end_observation*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::scene_changed*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::surface_added*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::surface_exists*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::surface_removed*; + non-virtual?thunk?to?mir::scene::SceneChangeNotification::surfaces_reordered*; + non-virtual?thunk?to?mir::scene::SceneReport::?SceneReport*; + non-virtual?thunk?to?mir::scene::Session::?Session*; non-virtual?thunk?to?mir::scene::SessionCoordinator::?SessionCoordinator*; + non-virtual?thunk?to?mir::scene::SessionEventHandlerRegister::?SessionEventHandlerRegister*; + non-virtual?thunk?to?mir::scene::SessionEventSink::?SessionEventSink*; non-virtual?thunk?to?mir::scene::SessionListener::?SessionListener*; + non-virtual?thunk?to?mir::scene::SessionLock::?SessionLock*; + non-virtual?thunk?to?mir::scene::SessionLockObserver::?SessionLockObserver*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::attrib_changed*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::client_surface_close_requested*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::content_resized_to*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::input_consumed*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::moved_to*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::orientation_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceEventSource::placed_relative*; non-virtual?thunk?to?mir::scene::SurfaceFactory::?SurfaceFactory*; non-virtual?thunk?to?mir::scene::SurfaceObserver::?SurfaceObserver*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::alpha_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::application_id_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::attrib_changed*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::client_surface_close_requested*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::content_resized_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::cursor_image_removed*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::cursor_image_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::depth_layer_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::frame_posted*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::hidden_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::input_consumed*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::moved_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::orientation_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::placed_relative*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::reception_mode_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::renamed*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::transformation_set_to*; + non-virtual?thunk?to?mir::scene::SurfaceObservers::window_resized_to*; + non-virtual?thunk?to?mir::scene::TextInputChangeHandler::?TextInputChangeHandler*; + non-virtual?thunk?to?mir::scene::TextInputHub::?TextInputHub*; + non-virtual?thunk?to?mir::scene::TextInputStateObserver::?TextInputStateObserver*; + non-virtual?thunk?to?mir::shell::AbstractShell::?AbstractShell*; non-virtual?thunk?to?mir::shell::AbstractShell::add_display*; non-virtual?thunk?to?mir::shell::AbstractShell::add_prompt_provider_for*; - non-virtual?thunk?to?mir::shell::AbstractShell::clear_drag_and_drop_handle*; non-virtual?thunk?to?mir::shell::AbstractShell::close_session*; non-virtual?thunk?to?mir::shell::AbstractShell::create_surface*; non-virtual?thunk?to?mir::shell::AbstractShell::destroy_surface*; non-virtual?thunk?to?mir::shell::AbstractShell::focus_next_session*; + non-virtual?thunk?to?mir::shell::AbstractShell::focus_prev_session*; non-virtual?thunk?to?mir::shell::AbstractShell::focused_session*; non-virtual?thunk?to?mir::shell::AbstractShell::focused_surface*; non-virtual?thunk?to?mir::shell::AbstractShell::get_surface_attribute*; @@ -598,63 +948,32 @@ MIR_SERVER_2.17 { non-virtual?thunk?to?mir::shell::AbstractShell::raise*; non-virtual?thunk?to?mir::shell::AbstractShell::raise_surface*; non-virtual?thunk?to?mir::shell::AbstractShell::remove_display*; - non-virtual?thunk?to?mir::shell::AbstractShell::request_drag_and_drop*; non-virtual?thunk?to?mir::shell::AbstractShell::request_move*; - non-virtual?thunk?to?mir::shell::AbstractShell::set_drag_and_drop_handle*; + non-virtual?thunk?to?mir::shell::AbstractShell::request_resize*; + non-virtual?thunk?to?mir::shell::AbstractShell::send_to_back*; non-virtual?thunk?to?mir::shell::AbstractShell::set_focus_to*; + non-virtual?thunk?to?mir::shell::AbstractShell::set_popup_grab_tree*; non-virtual?thunk?to?mir::shell::AbstractShell::set_surface_attribute*; non-virtual?thunk?to?mir::shell::AbstractShell::start_prompt_session_for*; non-virtual?thunk?to?mir::shell::AbstractShell::stop_prompt_session*; non-virtual?thunk?to?mir::shell::AbstractShell::surface_at*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::active_display*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::add_display*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::add_session*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::add_surface*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::clear_drag_and_drop_handle*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::find_session*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::focus_next_session*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::focused_session*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::focused_surface*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::forget*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::handle_keyboard_event*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::handle_pointer_event*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::handle_raise_surface*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::handle_request_move*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::handle_touch_event*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::info_for*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::modify_surface*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::raise_tree*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::remove_display*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::remove_session*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::remove_surface*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::set_drag_and_drop_handle*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::set_focus_to*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::set_surface_attribute*; - non-virtual?thunk?to?mir::shell::BasicWindowManager::surface_at*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_delete_surface*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_displays_updated*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_keyboard_event*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_modify_surface*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_new_surface*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_place_new_surface*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_pointer_event*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_raise_surface*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_session_info_updated*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_set_state*; - non-virtual?thunk?to?mir::shell::CanonicalWindowManagerPolicy::handle_touch_event*; + non-virtual?thunk?to?mir::shell::AbstractShell::surface_ready*; + non-virtual?thunk?to?mir::shell::AbstractShell::swap_z_order*; + non-virtual?thunk?to?mir::shell::DefaultWindowManager::handle_keyboard_event*; non-virtual?thunk?to?mir::shell::DisplayConfigurationController::?DisplayConfigurationController*; non-virtual?thunk?to?mir::shell::DisplayLayout::?DisplayLayout*; non-virtual?thunk?to?mir::shell::FocusController::?FocusController*; + non-virtual?thunk?to?mir::shell::IdleHandler::?IdleHandler*; non-virtual?thunk?to?mir::shell::InputTargeter::?InputTargeter*; non-virtual?thunk?to?mir::shell::PersistentSurfaceStore::?PersistentSurfaceStore*; non-virtual?thunk?to?mir::shell::ShellReport::?ShellReport*; non-virtual?thunk?to?mir::shell::ShellWrapper::add_display*; non-virtual?thunk?to?mir::shell::ShellWrapper::add_prompt_provider_for*; - non-virtual?thunk?to?mir::shell::ShellWrapper::clear_drag_and_drop_handle*; non-virtual?thunk?to?mir::shell::ShellWrapper::close_session*; non-virtual?thunk?to?mir::shell::ShellWrapper::create_surface*; non-virtual?thunk?to?mir::shell::ShellWrapper::destroy_surface*; non-virtual?thunk?to?mir::shell::ShellWrapper::focus_next_session*; + non-virtual?thunk?to?mir::shell::ShellWrapper::focus_prev_session*; non-virtual?thunk?to?mir::shell::ShellWrapper::focused_session*; non-virtual?thunk?to?mir::shell::ShellWrapper::focused_surface*; non-virtual?thunk?to?mir::shell::ShellWrapper::get_surface_attribute*; @@ -664,49 +983,47 @@ MIR_SERVER_2.17 { non-virtual?thunk?to?mir::shell::ShellWrapper::raise*; non-virtual?thunk?to?mir::shell::ShellWrapper::raise_surface*; non-virtual?thunk?to?mir::shell::ShellWrapper::remove_display*; - non-virtual?thunk?to?mir::shell::ShellWrapper::request_drag_and_drop*; non-virtual?thunk?to?mir::shell::ShellWrapper::request_move*; non-virtual?thunk?to?mir::shell::ShellWrapper::request_resize*; - non-virtual?thunk?to?mir::shell::ShellWrapper::set_drag_and_drop_handle*; + non-virtual?thunk?to?mir::shell::ShellWrapper::send_to_back*; non-virtual?thunk?to?mir::shell::ShellWrapper::set_focus_to*; + non-virtual?thunk?to?mir::shell::ShellWrapper::set_popup_grab_tree*; non-virtual?thunk?to?mir::shell::ShellWrapper::set_surface_attribute*; non-virtual?thunk?to?mir::shell::ShellWrapper::start_prompt_session_for*; non-virtual?thunk?to?mir::shell::ShellWrapper::stop_prompt_session*; non-virtual?thunk?to?mir::shell::ShellWrapper::surface_at*; + non-virtual?thunk?to?mir::shell::ShellWrapper::surface_ready*; + non-virtual?thunk?to?mir::shell::ShellWrapper::swap_z_order*; non-virtual?thunk?to?mir::shell::SurfaceStack::?SurfaceStack*; non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::add_surface*; non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::raise*; non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::remove_surface*; + non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::send_to_back*; non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::surface_at*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::add_display*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::add_session*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::add_surface*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_keyboard_event*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_pointer_event*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_raise_surface*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_request_move*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_request_resize*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::handle_touch_event*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::modify_surface*; + non-virtual?thunk?to?mir::shell::SurfaceStackWrapper::swap_z_order*; non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::on_session_added*; non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::on_session_ready*; non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::on_session_removed*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::remove_display*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::remove_session*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::remove_surface*; - non-virtual?thunk?to?mir::shell::SystemCompositorWindowManager::set_surface_attribute*; - non-virtual?thunk?to?mir::shell::WindowManagementPolicy::?WindowManagementPolicy*; non-virtual?thunk?to?mir::shell::WindowManager::?WindowManager*; - non-virtual?thunk?to?mir::shell::WindowManagerTools::?WindowManagerTools*; non-virtual?thunk?to?mir::time::Alarm::?Alarm*; non-virtual?thunk?to?mir::time::AlarmFactory::?AlarmFactory*; + std::hash::operator*; + typeinfo?for?mir::BasicCallback; typeinfo?for?mir::DefaultServerConfiguration; - typeinfo?for?mir::Executor; + typeinfo?for?mir::DefaultServerStatusListener; + typeinfo?for?mir::DisplayChanger; + typeinfo?for?mir::DisplayServer; + typeinfo?for?mir::EmergencyCleanup; + typeinfo?for?mir::GLibMainLoop; typeinfo?for?mir::LockableCallback; + typeinfo?for?mir::LockableCallbackWrapper; typeinfo?for?mir::MainLoop; typeinfo?for?mir::Server; typeinfo?for?mir::ServerActionQueue; + typeinfo?for?mir::ServerConfiguration; typeinfo?for?mir::ServerStatusListener; + typeinfo?for?mir::WaylandExtensionHook; + typeinfo?for?mir::compositor::BufferStream; typeinfo?for?mir::compositor::Compositor; typeinfo?for?mir::compositor::CompositorReport; typeinfo?for?mir::compositor::DisplayBufferCompositor; @@ -714,15 +1031,27 @@ MIR_SERVER_2.17 { typeinfo?for?mir::compositor::DisplayListener; typeinfo?for?mir::compositor::Scene; typeinfo?for?mir::compositor::SceneElement; + typeinfo?for?mir::compositor::ScreenShooter; + typeinfo?for?mir::detail::FdSources; + typeinfo?for?mir::detail::GMainContextHandle; + typeinfo?for?mir::detail::GSourceHandle; + typeinfo?for?mir::detail::SignalSources; typeinfo?for?mir::frontend::BufferSink; typeinfo?for?mir::frontend::BufferStream; + typeinfo?for?mir::frontend::Connector; + typeinfo?for?mir::frontend::DisplayChanger; + typeinfo?for?mir::frontend::DragIconController; + typeinfo?for?mir::frontend::EventSink; + typeinfo?for?mir::frontend::InputConfigurationChanger; + typeinfo?for?mir::frontend::PointerInputDispatcher; typeinfo?for?mir::frontend::PromptSession; - typeinfo?for?mir::frontend::Session; typeinfo?for?mir::frontend::SessionAuthorizer; typeinfo?for?mir::frontend::SessionCredentials; typeinfo?for?mir::frontend::Surface; + typeinfo?for?mir::frontend::SurfaceStack; typeinfo?for?mir::graphics::CloneDisplayConfigurationPolicy; typeinfo?for?mir::graphics::DisplayConfigurationObserver; + typeinfo?for?mir::graphics::NullDisplayConfigurationObserver; typeinfo?for?mir::graphics::SideBySideDisplayConfigurationPolicy; typeinfo?for?mir::graphics::SingleDisplayConfigurationPolicy; typeinfo?for?mir::input::CompositeEventFilter; @@ -734,97 +1063,166 @@ MIR_SERVER_2.17 { typeinfo?for?mir::input::InputDeviceObserver; typeinfo?for?mir::input::InputDispatcher; typeinfo?for?mir::input::InputManager; + typeinfo?for?mir::input::KeyboardObserver; + typeinfo?for?mir::input::Scene; + typeinfo?for?mir::input::Seat; typeinfo?for?mir::input::SeatObserver; typeinfo?for?mir::input::Surface; typeinfo?for?mir::input::TouchVisualizer::Spot; typeinfo?for?mir::input::TouchVisualizer; + typeinfo?for?mir::input::VTFilter; + typeinfo?for?mir::input::Validator; + typeinfo?for?mir::input::VirtualInputDevice; typeinfo?for?mir::scene::ApplicationNotRespondingDetector::Observer; typeinfo?for?mir::scene::ApplicationNotRespondingDetector; typeinfo?for?mir::scene::ApplicationNotRespondingDetectorWrapper; typeinfo?for?mir::scene::BufferStreamFactory; - typeinfo?for?mir::scene::CoordinateTranslator; + typeinfo?for?mir::scene::Clipboard; + typeinfo?for?mir::scene::ClipboardObserver; + typeinfo?for?mir::scene::DataExchangeSource; + typeinfo?for?mir::scene::IdleHub; + typeinfo?for?mir::scene::IdleStateObserver; + typeinfo?for?mir::scene::NullObserver; + typeinfo?for?mir::scene::NullPromptSessionListener; typeinfo?for?mir::scene::NullSessionListener; typeinfo?for?mir::scene::NullSurfaceObserver; typeinfo?for?mir::scene::Observer; + typeinfo?for?mir::scene::OutputProperties; + typeinfo?for?mir::scene::OutputPropertiesCache; typeinfo?for?mir::scene::PromptSession; typeinfo?for?mir::scene::PromptSessionCreationParameters; typeinfo?for?mir::scene::PromptSessionListener; typeinfo?for?mir::scene::PromptSessionManager; + typeinfo?for?mir::scene::SceneChangeNotification; + typeinfo?for?mir::scene::SceneReport; typeinfo?for?mir::scene::Session; + typeinfo?for?mir::scene::SessionContainer; typeinfo?for?mir::scene::SessionCoordinator; + typeinfo?for?mir::scene::SessionEventHandlerRegister; + typeinfo?for?mir::scene::SessionEventSink; typeinfo?for?mir::scene::SessionListener; - typeinfo?for?mir::scene::Snapshot; + typeinfo?for?mir::scene::SessionLock; + typeinfo?for?mir::scene::SessionLockObserver; typeinfo?for?mir::scene::StreamInfo; typeinfo?for?mir::scene::Surface; + typeinfo?for?mir::scene::SurfaceEventSource; typeinfo?for?mir::scene::SurfaceFactory; typeinfo?for?mir::scene::SurfaceObserver; + typeinfo?for?mir::scene::SurfaceObservers; + typeinfo?for?mir::scene::SurfaceStateTracker; + typeinfo?for?mir::scene::TextInputChange::CursorPosition; + typeinfo?for?mir::scene::TextInputChange::TextInputKeySym; + typeinfo?for?mir::scene::TextInputChange::TextInputPreeditStyle; + typeinfo?for?mir::scene::TextInputChange; + typeinfo?for?mir::scene::TextInputChangeHandler; + typeinfo?for?mir::scene::TextInputHub; + typeinfo?for?mir::scene::TextInputState; + typeinfo?for?mir::scene::TextInputStateObserver; typeinfo?for?mir::shell::AbstractShell; - typeinfo?for?mir::shell::BasicWindowManager; - typeinfo?for?mir::shell::CanonicalWindowManagerPolicy; + typeinfo?for?mir::shell::DefaultWindowManager; typeinfo?for?mir::shell::DisplayConfigurationController; typeinfo?for?mir::shell::DisplayLayout; typeinfo?for?mir::shell::FocusController; + typeinfo?for?mir::shell::IdleHandler; typeinfo?for?mir::shell::InputTargeter; typeinfo?for?mir::shell::PersistentSurfaceStore::Id; typeinfo?for?mir::shell::PersistentSurfaceStore; - typeinfo?for?mir::shell::SessionInfo; typeinfo?for?mir::shell::Shell; typeinfo?for?mir::shell::ShellReport; typeinfo?for?mir::shell::ShellWrapper; typeinfo?for?mir::shell::StreamSpecification; typeinfo?for?mir::shell::SurfaceAspectRatio; - typeinfo?for?mir::shell::SurfaceInfo; typeinfo?for?mir::shell::SurfaceSpecification; typeinfo?for?mir::shell::SurfaceStack; typeinfo?for?mir::shell::SurfaceStackWrapper; typeinfo?for?mir::shell::SystemCompositorWindowManager; - typeinfo?for?mir::shell::WindowManagementPolicy; typeinfo?for?mir::shell::WindowManager; - typeinfo?for?mir::shell::WindowManagerTools; typeinfo?for?mir::time::Alarm; typeinfo?for?mir::time::AlarmFactory; - virtual?thunk?to?mir::shell::AbstractShell::?AbstractShell*; + typeinfo?for?std::hash; + virtual?thunk?to?mir::DefaultServerConfiguration::add_wayland_extension*; + virtual?thunk?to?mir::DefaultServerConfiguration::set_enabled_wayland_extensions*; + virtual?thunk?to?mir::DefaultServerConfiguration::set_wayland_extension_filter*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_application_not_responding_detector*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_compositor*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_console_services*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_display*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_display_changer*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_display_platforms*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_emergency_cleanup*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_fatal_error_strategy*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_idle_handler*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_idle_hub*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_input_dispatcher*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_input_manager*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_main_clipboard*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_main_loop*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_primary_selection_clipboard*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_rendering_platforms*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_screen_shooter*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_server_status_listener*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_session_lock*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_stop_callback*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_text_input_hub*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_wayland_connector*; + virtual?thunk?to?mir::DefaultServerConfiguration::the_xwayland_connector*; + virtual?thunk?to?mir::DefaultServerStatusListener::paused*; + virtual?thunk?to?mir::DefaultServerStatusListener::ready_for_user_input*; + virtual?thunk?to?mir::DefaultServerStatusListener::resumed*; + virtual?thunk?to?mir::DefaultServerStatusListener::started*; + virtual?thunk?to?mir::DefaultServerStatusListener::stop_receiving_input*; virtual?thunk?to?mir::shell::AbstractShell::add_display*; virtual?thunk?to?mir::shell::AbstractShell::add_prompt_provider_for*; virtual?thunk?to?mir::shell::AbstractShell::close_session*; virtual?thunk?to?mir::shell::AbstractShell::create_surface*; virtual?thunk?to?mir::shell::AbstractShell::destroy_surface*; virtual?thunk?to?mir::shell::AbstractShell::focus_next_session*; + virtual?thunk?to?mir::shell::AbstractShell::focus_prev_session*; virtual?thunk?to?mir::shell::AbstractShell::focused_session*; + virtual?thunk?to?mir::shell::AbstractShell::focused_surface*; virtual?thunk?to?mir::shell::AbstractShell::get_surface_attribute*; virtual?thunk?to?mir::shell::AbstractShell::handle*; - virtual?thunk?to?mir::shell::AbstractShell::handle_surface_created*; virtual?thunk?to?mir::shell::AbstractShell::open_session*; + virtual?thunk?to?mir::shell::AbstractShell::raise*; + virtual?thunk?to?mir::shell::AbstractShell::raise_surface*; virtual?thunk?to?mir::shell::AbstractShell::remove_display*; + virtual?thunk?to?mir::shell::AbstractShell::request_move*; + virtual?thunk?to?mir::shell::AbstractShell::request_resize*; + virtual?thunk?to?mir::shell::AbstractShell::send_to_back*; virtual?thunk?to?mir::shell::AbstractShell::set_focus_to*; + virtual?thunk?to?mir::shell::AbstractShell::set_popup_grab_tree*; virtual?thunk?to?mir::shell::AbstractShell::set_surface_attribute*; - virtual?thunk?to?mir::shell::AbstractShell::setting_focus_to*; virtual?thunk?to?mir::shell::AbstractShell::start_prompt_session_for*; virtual?thunk?to?mir::shell::AbstractShell::stop_prompt_session*; - virtual?thunk?to?mir::shell::BasicWindowManager::?BasicWindowManager*; - virtual?thunk?to?mir::shell::BasicWindowManager::add_display*; - virtual?thunk?to?mir::shell::BasicWindowManager::add_session*; - virtual?thunk?to?mir::shell::BasicWindowManager::add_surface*; - virtual?thunk?to?mir::shell::BasicWindowManager::handle_keyboard_event*; - virtual?thunk?to?mir::shell::BasicWindowManager::handle_pointer_event*; - virtual?thunk?to?mir::shell::BasicWindowManager::handle_raise_surface*; - virtual?thunk?to?mir::shell::BasicWindowManager::handle_request_move*; - virtual?thunk?to?mir::shell::BasicWindowManager::handle_touch_event*; - virtual?thunk?to?mir::shell::BasicWindowManager::modify_surface*; - virtual?thunk?to?mir::shell::BasicWindowManager::remove_display*; - virtual?thunk?to?mir::shell::BasicWindowManager::remove_session*; - virtual?thunk?to?mir::shell::BasicWindowManager::remove_surface*; - virtual?thunk?to?mir::shell::BasicWindowManager::set_surface_attribute*; + virtual?thunk?to?mir::shell::AbstractShell::surface_at*; + virtual?thunk?to?mir::shell::AbstractShell::surface_ready*; + virtual?thunk?to?mir::shell::AbstractShell::swap_z_order*; virtual?thunk?to?mir::shell::ShellWrapper::add_display*; + virtual?thunk?to?mir::shell::ShellWrapper::focus_next_session*; + virtual?thunk?to?mir::shell::ShellWrapper::focus_prev_session*; + virtual?thunk?to?mir::shell::ShellWrapper::focused_session*; + virtual?thunk?to?mir::shell::ShellWrapper::focused_surface*; virtual?thunk?to?mir::shell::ShellWrapper::handle*; + virtual?thunk?to?mir::shell::ShellWrapper::raise*; virtual?thunk?to?mir::shell::ShellWrapper::remove_display*; + virtual?thunk?to?mir::shell::ShellWrapper::send_to_back*; + virtual?thunk?to?mir::shell::ShellWrapper::set_focus_to*; + virtual?thunk?to?mir::shell::ShellWrapper::set_popup_grab_tree*; + virtual?thunk?to?mir::shell::ShellWrapper::surface_at*; + virtual?thunk?to?mir::shell::ShellWrapper::swap_z_order*; + vtable?for?mir::BasicCallback; vtable?for?mir::DefaultServerConfiguration; - vtable?for?mir::Executor; + vtable?for?mir::DefaultServerStatusListener; + vtable?for?mir::DisplayChanger; + vtable?for?mir::EmergencyCleanup; + vtable?for?mir::GLibMainLoop; vtable?for?mir::LockableCallback; + vtable?for?mir::LockableCallbackWrapper; vtable?for?mir::MainLoop; - vtable?for?mir::Server; vtable?for?mir::ServerActionQueue; + vtable?for?mir::ServerConfiguration; vtable?for?mir::ServerStatusListener; + vtable?for?mir::compositor::BufferStream; vtable?for?mir::compositor::Compositor; vtable?for?mir::compositor::CompositorReport; vtable?for?mir::compositor::DisplayBufferCompositor; @@ -832,14 +1230,22 @@ MIR_SERVER_2.17 { vtable?for?mir::compositor::DisplayListener; vtable?for?mir::compositor::Scene; vtable?for?mir::compositor::SceneElement; + vtable?for?mir::compositor::ScreenShooter; vtable?for?mir::frontend::BufferSink; + vtable?for?mir::frontend::BufferStream; + vtable?for?mir::frontend::Connector; + vtable?for?mir::frontend::DisplayChanger; + vtable?for?mir::frontend::DragIconController; + vtable?for?mir::frontend::EventSink; + vtable?for?mir::frontend::InputConfigurationChanger; + vtable?for?mir::frontend::PointerInputDispatcher; vtable?for?mir::frontend::PromptSession; - vtable?for?mir::frontend::Session; vtable?for?mir::frontend::SessionAuthorizer; - vtable?for?mir::frontend::SessionCredentials; vtable?for?mir::frontend::Surface; + vtable?for?mir::frontend::SurfaceStack; vtable?for?mir::graphics::CloneDisplayConfigurationPolicy; vtable?for?mir::graphics::DisplayConfigurationObserver; + vtable?for?mir::graphics::NullDisplayConfigurationObserver; vtable?for?mir::graphics::SideBySideDisplayConfigurationPolicy; vtable?for?mir::graphics::SingleDisplayConfigurationPolicy; vtable?for?mir::input::CompositeEventFilter; @@ -851,65 +1257,66 @@ MIR_SERVER_2.17 { vtable?for?mir::input::InputDeviceObserver; vtable?for?mir::input::InputDispatcher; vtable?for?mir::input::InputManager; + vtable?for?mir::input::KeyboardObserver; + vtable?for?mir::input::Scene; + vtable?for?mir::input::Seat; vtable?for?mir::input::SeatObserver; vtable?for?mir::input::Surface; - vtable?for?mir::input::TouchVisualizer::Spot; vtable?for?mir::input::TouchVisualizer; + vtable?for?mir::input::VTFilter; + vtable?for?mir::input::VirtualInputDevice; vtable?for?mir::scene::ApplicationNotRespondingDetector::Observer; vtable?for?mir::scene::ApplicationNotRespondingDetector; vtable?for?mir::scene::ApplicationNotRespondingDetectorWrapper; vtable?for?mir::scene::BufferStreamFactory; - vtable?for?mir::scene::CoordinateTranslator; + vtable?for?mir::scene::Clipboard; + vtable?for?mir::scene::ClipboardObserver; + vtable?for?mir::scene::DataExchangeSource; + vtable?for?mir::scene::IdleHub; + vtable?for?mir::scene::IdleStateObserver; + vtable?for?mir::scene::NullObserver; + vtable?for?mir::scene::NullPromptSessionListener; vtable?for?mir::scene::NullSessionListener; vtable?for?mir::scene::NullSurfaceObserver; vtable?for?mir::scene::Observer; vtable?for?mir::scene::PromptSession; - vtable?for?mir::scene::PromptSessionCreationParameters; vtable?for?mir::scene::PromptSessionListener; vtable?for?mir::scene::PromptSessionManager; + vtable?for?mir::scene::SceneChangeNotification; + vtable?for?mir::scene::SceneReport; vtable?for?mir::scene::Session; vtable?for?mir::scene::SessionCoordinator; + vtable?for?mir::scene::SessionEventHandlerRegister; + vtable?for?mir::scene::SessionEventSink; vtable?for?mir::scene::SessionListener; - vtable?for?mir::scene::Snapshot; - vtable?for?mir::scene::StreamInfo; + vtable?for?mir::scene::SessionLock; + vtable?for?mir::scene::SessionLockObserver; vtable?for?mir::scene::Surface; + vtable?for?mir::scene::SurfaceEventSource; vtable?for?mir::scene::SurfaceFactory; vtable?for?mir::scene::SurfaceObserver; + vtable?for?mir::scene::SurfaceObservers; + vtable?for?mir::scene::TextInputChangeHandler; + vtable?for?mir::scene::TextInputHub; + vtable?for?mir::scene::TextInputStateObserver; vtable?for?mir::shell::AbstractShell; - vtable?for?mir::shell::BasicWindowManager; - vtable?for?mir::shell::CanonicalWindowManagerPolicy; + vtable?for?mir::shell::DefaultWindowManager; vtable?for?mir::shell::DisplayConfigurationController; vtable?for?mir::shell::DisplayLayout; vtable?for?mir::shell::FocusController; + vtable?for?mir::shell::IdleHandler; vtable?for?mir::shell::InputTargeter; - vtable?for?mir::shell::PersistentSurfaceStore::Id; vtable?for?mir::shell::PersistentSurfaceStore; - vtable?for?mir::shell::SessionInfo; vtable?for?mir::shell::Shell; vtable?for?mir::shell::ShellReport; vtable?for?mir::shell::ShellWrapper; - vtable?for?mir::shell::StreamSpecification; - vtable?for?mir::shell::SurfaceAspectRatio; - vtable?for?mir::shell::SurfaceInfo; - vtable?for?mir::shell::SurfaceSpecification; vtable?for?mir::shell::SurfaceStack; vtable?for?mir::shell::SurfaceStackWrapper; vtable?for?mir::shell::SystemCompositorWindowManager; - vtable?for?mir::shell::WindowManagementPolicy; vtable?for?mir::shell::WindowManager; - vtable?for?mir::shell::WindowManagerTools; vtable?for?mir::time::Alarm; vtable?for?mir::time::AlarmFactory; - mir::shell::ShellWrapper::surface_ready*; - mir::shell::ShellWrapper::set_popup_grab_tree*; - mir::DefaultServerConfiguration::the_main_clipboard*; - mir::DefaultServerConfiguration::the_primary_selection_clipboard*; - "mir::DefaultServerConfiguration::the_drag_icon_controller()"; - "mir::DefaultServerConfiguration::the_pointer_input_dispatcher()"; - mir::shell::SurfaceStackWrapper::swap_z_order*; - mir::shell::SurfaceStackWrapper::send_to_back*; - mir::shell::ShellWrapper::swap_z_order*; - mir::shell::ShellWrapper::send_to_back*; - }; - local: *; + }; +local: *; }; + diff --git a/tools/symbols_map_generator/main.py b/tools/symbols_map_generator/main.py index f48ad6fadff..b5c048eff05 100755 --- a/tools/symbols_map_generator/main.py +++ b/tools/symbols_map_generator/main.py @@ -104,15 +104,51 @@ def has_vtable(node: clang.cindex.Cursor): return False +def has_virtual_base_class(node: clang.cindex.Cursor): + # This method assumes that the node is a class/struct + + result = False + for child in node.get_children(): + if child.kind != clang.cindex.CursorKind.CXX_BASE_SPECIFIER: + continue + + if clang.cindex.conf.lib.clang_isVirtualBase(child): + result = True + else: + class_or_struct_node = clang.cindex.conf.lib.clang_getCursorDefinition(child) + if class_or_struct_node is None: + continue + + result = has_virtual_base_class(class_or_struct_node) + + if result: + break + + return result + + def is_function_inline(node: clang.cindex.CursorKind): # This method assumes that the node is a FUNCTION_DECL. # There is no explicit way to check if a function is inlined # but seeing that if it is a FUNCTION_DECL and it has # a definition is good enough. - return node.is_definition() + return node.is_definition() + + +def get_namespace_str(node: clang.cindex.Cursor) -> list[str]: + if node.kind == clang.cindex.CursorKind.TRANSLATION_UNIT: + return [] + + spelling = node.spelling + if is_operator(node): + spelling = "operator" + elif node.kind == clang.cindex.CursorKind.DESTRUCTOR: + spelling = f"?{node.spelling[1:]}" + + return get_namespace_str(node.semantic_parent) + [spelling] -def traverse_ast(node: clang.cindex.Cursor, filename: str, result: set[str], current_namespace: str = "") -> set[str]: +def traverse_ast(node: clang.cindex.Cursor, filename: str, result: set[str]) -> set[str]: # Ignore private and protected variables if (node.access_specifier == clang.cindex.AccessSpecifier.PRIVATE): return result @@ -129,11 +165,7 @@ def traverse_ast(node: clang.cindex.Cursor, filename: str, result: set[str], cur and not node.is_pure_virtual_method() and not node.is_anonymous()): - if current_namespace: - namespace_str = f"{current_namespace}::{create_node_symbol_name(node)}" - else: - namespace_str = create_node_symbol_name(node) - + namespace_str = "::".join(get_namespace_str(node)) _logger.debug(f"Emitting node {namespace_str} in file {node.location.file.name}") # Classes and structs have a specific output @@ -141,6 +173,8 @@ def traverse_ast(node: clang.cindex.Cursor, filename: str, result: set[str], cur or node.kind == clang.cindex.CursorKind.STRUCT_DECL): if has_vtable(node): result.add(f"vtable?for?{namespace_str};") + if has_virtual_base_class(node): + result.add(f"VTT?for?{namespace_str};") result.add(f"typeinfo?for?{namespace_str};") else: def add_internal(s: str): @@ -215,15 +249,9 @@ def search_class_hierarchy_for_virtual_thunk(derived: clang.cindex.Cursor): if clang.cindex.conf.lib.clang_Location_isInSystemHeader(node.location): _logger.debug(f"Node is in a system header={node.location.file.name}") return result - - if node.kind != clang.cindex.CursorKind.TRANSLATION_UNIT: - if not current_namespace: - current_namespace = node.spelling - else: - current_namespace = f"{current_namespace}::{node.spelling}" for child in node.get_children(): - traverse_ast(child, filename, result, current_namespace) + traverse_ast(child, filename, result) else: _logger.debug(f"Nothing to process for node={node.spelling} in file={node.location.file.name}")