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