-
Dan Vrátil authored
Until now KScreen was loading the backend plugin into each KScreen-enabled application. This patch changes the design completely: The KScreen library now requests a backend (which is represented by a DBus interface) from BackendManager (a replacement for BackendLoader). BackendManager will then start (if not running) kscreen_backend_launcher process (BackendLauncher), that will detect the correct plugin for the current platform, load it, and will create a DBus service called org.kde.KScreen.Backend.%backendName% with org.kde.KScreen.Backend interface. The library will now communicate with the backend through this DBus interface. The out-of-process design solves many issues, including blocking calls in main thread, better performance (backend aggregates notifications before emitting them to clients, reducing number of "changes" clients have to handle, and better stability (backend crash does not crash the application).
a127049b