Review Request 124220: kwindowsystem: Add a plugin infrastructure for platform specific implementations
Martin Gräßlin
mgraesslin at kde.org
Wed Jul 1 07:39:29 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/124220/
-----------------------------------------------------------
Review request for KDE Frameworks.
Repository: kwindowsystem
Description
-------
A plugin interface is added which allows a platform specific plugin
to implement an interface. If the plugin does not implement the
interface, it will fall back to the default implementation. Also
if no plugin can be resolved it will fall back to the default
implementation.
This replaces the existing compile time and runtime selection. In
order to make this work the KWindowInfoPrivate is changed from a
templated approach to using pure virtuals just like the other private
implementations in this library.
As the platform specific parts are no longer compiled in we cannot
"just" delegate the KWindowSystem::icon with NETWinInfo overload
to the xcb implementation. In order to solve this problem the required
method is added to the private interface with a default implementation
which does not return anything. If we are not on platform xcb and
KWindowSystem is compiled with X11 support the plugin for xcb is loaded
and the call gets delegated to the xcb implementation. This allows e.g.
KWin to still read icons for Xwayland clients.
Diffs
-----
src/CMakeLists.txt ff2ce392ecd7969eb94543528c7a670ea0fcd870
src/config-kwindowsystem.h.cmake fa0eec115870be27a17ec7b398e40f0c7506f11b
src/kwindoweffects.cpp fd88e20e1728506f135bcd5ecda3c05754839717
src/kwindoweffects_dummy.cpp 3e24cecb5c7d25883c179b622abdb5ab06587c33
src/kwindoweffects_dummy_p.h PRE-CREATION
src/kwindoweffects_p.h 7c740da952f279a2c5fe689daa5a06c131fa9c9d
src/kwindowinfo.cpp f29828581cdaecb7613c3f62cff72aa1fc33c266
src/kwindowinfo_dummy_p.h PRE-CREATION
src/kwindowinfo_p.h 6727dd1715a13e5bd7793275620c5fa682318f1c
src/kwindowsystem.cpp 789132e1b4883dd54218d29af9710dedfe6218e1
src/kwindowsystem_dummy_p.h PRE-CREATION
src/kwindowsystem_p.h 0b5f3e8aeb7b70234c61c59979abd840f349b154
src/kwindowsystemplugininterface.cpp PRE-CREATION
src/kwindowsystemplugininterface_p.h PRE-CREATION
src/platforms/wayland/CMakeLists.txt PRE-CREATION
src/platforms/wayland/plugin.h PRE-CREATION
src/platforms/wayland/plugin.cpp PRE-CREATION
src/platforms/wayland/wayland.json PRE-CREATION
src/platforms/xcb/CMakeLists.txt PRE-CREATION
src/platforms/xcb/kwindoweffects.cpp
src/platforms/xcb/kwindoweffects_x11.h PRE-CREATION
src/platforms/xcb/kwindowinfo.cpp
src/platforms/xcb/kwindowinfo_p_x11.h
src/platforms/xcb/kwindowsystem.cpp
src/platforms/xcb/kwindowsystem_p_x11.h
src/platforms/xcb/plugin.h PRE-CREATION
src/platforms/xcb/plugin.cpp PRE-CREATION
src/platforms/xcb/xcb.json PRE-CREATION
src/pluginwrapper.cpp PRE-CREATION
src/pluginwrapper_p.h PRE-CREATION
Diff: https://git.reviewboard.kde.org/r/124220/diff/
Testing
-------
* unit tests still pass (X11)
* kwin_wayland still shows icons for Xwayland clients
Thanks,
Martin Gräßlin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150701/7fe05f86/attachment.html>
More information about the Kde-frameworks-devel
mailing list