As all effects have always been compiled into the same .so file it's
questionable whether resolving the effects through a library is useful
at all. By linking against the built-in effects we gain the following
advantages:
* don't have to load/unload the KLibrary
* don't have to resolve the create, supported and enabled functions
* no version check required
* no dependency resolving (effects don't use it)
* remove the KWIN_EFFECT macros from the effects
All the effects are now registered in an effects_builtins file which
maps the name to a factory method and supported or enabled by default
methods.
During loading the effects we first check whether there is a built-in
effect by the given name and make a shortcut to create it through that.
If that's not possible the normal plugin loading is used.
Completely unscientific testing [1] showed an improvement of almost 10
msec during loading all the effects I use.
[1] QElapsedTimer around the loading code, start kwin five times, take
average.
REVIEW: 115073
Most effects had a "collection" for one action. We don't need the
action collection, all it was used for is setting the object name.
With the removal of KActionCollection the effects do not need to link
XmlGui any more, though the dependency is still pulled in through
plasma.
* "" needs to be wrapped in QStringLiteral
* QString::fromUtf8 needed for const char* and QByteArray
* QByteArray::constData() needed to get to the const char*
ScreenEdgesEffect failed compiling, mouseclick and zoom are yelling
warnings.
Compiling is tested with XRender enabled, for the disabled test I need to
wait for my Jenkins installation ;-)
X counts the middle button as 2 and right as 3, Qt as 4 and 2 resp. the flags
... we shall at least match our GUI ;-)
BUG: 314756
FIXED-IN: 4.10.1
REVIEW: 108883
happens when the polling misses the press when doing more
important things
also shortcut buttons == oldButtons
BUG: 314762
FIXED-IN: 4.10.1
REVIEW: 108883