Review Request 123542: [runtime] Move platform specific code into plugins
Martin Gräßlin
mgraesslin at kde.org
Tue Apr 28 14:13:47 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/123542/
-----------------------------------------------------------
Review request for KDE Frameworks, kdewin and Martin Klapetek.
Repository: kglobalaccel
Description
-------
The current architecture of the runtime component was to have compile
time destinctions between various platforms. This approach does not
allow to include Wayland support on Linux as both xcb and Wayland are
possible platforms which are selected at runtime and not at compile
time. Thus a change of the architecture is required.
The solution taken in this patch is to move the platform specific code
into plugins and to load the plugin specific to the currently used
platform. Therefore a new interface class is introduced which the
plugins have to implement. In addition most of the runtime is turned
into a library, so that the plugin can link it.
To properly support Wayland more changes will be required. The security
provided by the Wayland windowing system does not work well with the
architecture of kglobalacceld. Kglobalacceld is a kind of glorified
key logger. Wayland makes it impossible to be a key logger. Thus the
support for global shortcuts needs to be in the compositor. In the case
of KDE Plasma that is KWin. On that architecture we can make kglobalaccel
to still work by allowing KWin to link the new library and provide it's
own plugin. In order to support this the new private library must be
cleaned up and prepared for at least allowing a somewhat stable API/ABI.
Please note that this change also disables build for all platforms
except xcb (OSX and Windows) due to lack of a build environment.
Diffs
-----
src/runtime/CMakeLists.txt 8c7c7610843040fa60ab095114e7b74707f75c30
src/runtime/component.cpp 663d0ade5ffe03254cc7886b76c7850d4b4317ab
src/runtime/globalshortcutsregistry.h ca12db09f4b56b0a0f0b6304da1cd1292ef65042
src/runtime/globalshortcutsregistry.cpp 446e766deb96ae3a83baabaca726d5460b597b88
src/runtime/kglobalaccel_interface.h PRE-CREATION
src/runtime/kglobalaccel_interface.cpp PRE-CREATION
src/runtime/kglobalaccel_mac.h
src/runtime/kglobalaccel_mac.cpp
src/runtime/kglobalaccel_win.h
src/runtime/kglobalaccel_win.cpp
src/runtime/kglobalaccel_x11.h b398e1cfcf9496b58f6b05893a002c112c7cf986
src/runtime/kglobalaccel_x11.cpp 2600220c255641304d4f67aad74582b01b8f799c
src/runtime/kglobalacceld.h b2fc27223ea1d11ca5a75f2ad58a8d745fb17191
src/runtime/plugins/CMakeLists.txt PRE-CREATION
src/runtime/plugins/xcb/CMakeLists.txt PRE-CREATION
src/runtime/plugins/xcb/xcb.json PRE-CREATION
Diff: https://git.reviewboard.kde.org/r/123542/diff/
Testing
-------
kglobalaccel5 still working on platform xcb (running here right now)
Thanks,
Martin Gräßlin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150428/4edf1566/attachment.html>
More information about the Kde-frameworks-devel
mailing list