Summary:
Won't make things go much faster since everything that was
being passed by value is refcounted but still const & is a bit faster
than refcounting
For shared pointers instead of adding const & we move them into the
destination variable saving some cpu usage but at the same time making
clear the pointer is being stored by not being const &
Reviewers: zzag
Reviewed By: zzag
Subscribers: zzag, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D25022
Summary:
This patch fixes some of issues that the Snap Helper effect currently
has:
* If a window is being moved, there are visual artifacts (cause: missing
addRepaint's);
* It uses addRepaintFull;
* For some reason, if a window goes deleted, it will be kept around as
long as the Snap Helper effect needs it (visually, it doesn't look
good).
Among other changes:
* Use variables to store color and width of grid lines;
* Use new connect syntax;
* Port to TimeLine;
* Fix coding style in some places.
Test Plan:
Tried the effect with different rendering backends, no longer see visual
artifacts when moving or resizing windows.
Reviewers: #kwin, romangg
Reviewed By: #kwin, romangg
Subscribers: romangg, abetts, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D15695
Each effect is able to declare itself as currently being active,
that is transforming windows or painting or screen or doing anything
during the current rendered frame.
This change eliminates the hottest path inside KWin identified by
callgrind.
REVIEW: 102449
The KWin::TimeLine class was only a small wrapper around QTimeLine
without adding anything to QTimeLine what is not present in QTimeLine.
The initial idea was to make it possible to provide more curve shapes.
This is now obsoleted by Qt shipping more useful curves with QTimeLine.
So let's clean up a little bit and use QTimeLine directly instead of
the small wrapper.
All effects are adjusted to use QTimeLine directly.
First a signal is emitted when the user starts a move/resize operation.
During the move/resize operation each geometry change emits an update signal.
Last but not least a finish signal is emitted.
This eliminates the specific method for geometry updates in drawbound resize
mode.
Client and Unmanaged use a signal to notify that they are about to be closed.
The EffectsHandlerImpl is connected to those signals and emits the appropriate
windowClosed signal to which the effects are connected.
perfectionist people that want to move a window to the exact center of
the screen but can never get close enough to it for the automatic
snapping to trigger. OpenGL-only for now, gave up on XRender, if anyone
can get it to work go for it.
svn path=/trunk/KDE/kdebase/workspace/; revision=926393