kwin/effects
David Edmundson e3044e619e Correctly align natural layout in present windows
Summary:
Present windows works as follows:

- It moves all windows about until nothing is overlapping with any
other window.
- This doesn't resize anything so ultimately we end up with a new
co-ordinate space that's bigger than the screen depending on the amount
of overlap.

 - We then render this whole view transformed to the screen

The rectangle "bounds" is in overviewpixels, with "scale" being the
ratio to convert to screen pixels.

When adjusting the new bounds there's an attempt to centre align things.
As bounds is in "overviewpixels" we multiply references to the previous
bounds by scale, and divide everything through at the end. bounds.x/y
were missed.

This is mostly unoticable except on massive super-ultra-wide monitors
which will otherwise have a tendency to shift to the left.

Test Plan:
Kai created a whole new test framework for this code that copy pasted
this algorithm then showed mock windows as rectangles

Reviewers: #kwin, apol, broulik, zzag

Reviewed By: #kwin, apol, broulik, zzag

Subscribers: zzag, apol, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D29705
2020-05-26 10:52:16 +01:00
..
backgroundcontrast Port KWin to KWaylandServer 2020-04-30 12:56:08 +02:00
blur Port KWin to KWaylandServer 2020-04-30 12:56:08 +02:00
colorpicker Add some const & 2019-10-30 19:23:01 +01:00
coverswitch Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
cube Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
cubeslide Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
desktopgrid Port KWin to KWaylandServer 2020-04-30 12:56:08 +02:00
dialogparent/package Update my email address 2020-01-14 18:17:18 +02:00
diminactive Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
dimscreen/package Update my email address 2020-01-14 18:17:18 +02:00
eyeonscreen/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-04-29 06:38:00 +02:00
fade SVN_SILENT made messages (.desktop file) - always resolve ours 2019-12-03 05:49:05 +01:00
fadedesktop SVN_SILENT made messages (.desktop file) - always resolve ours 2020-01-29 09:28:27 +01:00
fadingpopups/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-03-27 06:43:00 +01:00
fallapart Revert "[effects/fallapart] Override scale, fade, and glide effect" 2019-12-12 15:31:56 +02:00
flipswitch Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
frozenapp/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-02-21 09:42:45 +01:00
glide Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
highlightwindow Fix compiler warnings 2020-03-17 15:07:52 +01:00
invert Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
kscreen
login/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-02-11 05:59:16 +01:00
logout/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-03-27 06:43:00 +01:00
lookingglass Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
magiclamp Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
magnifier Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
maximize/package [effects/maximize] Use windowFrameGeometryChanged 2020-02-12 10:52:26 +02:00
morphingpopups/package [effects/morphingpopups] Start animation on windowFrameGeometryChanged 2020-02-12 10:52:26 +02:00
mouseclick Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
mousemark Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
presentwindows Correctly align natural layout in present windows 2020-05-26 10:52:16 +01:00
resize Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
scale/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-03-27 06:43:00 +01:00
screenedge Add some const & 2019-10-30 19:23:01 +01:00
screenshot Fix compile with strict iterator 2020-05-01 13:02:39 +02:00
sessionquit/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-03-27 06:43:00 +01:00
sheet Update my email address 2020-01-14 18:17:18 +02:00
showfps [effects/showfps] Calculate "correct" FPS 2020-05-07 09:17:02 +03:00
showpaint SVN_SILENT made messages (.desktop file) - always resolve ours 2020-04-22 06:37:43 +02:00
slide Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
slideback
slidingpopups Port KWin to KWaylandServer 2020-04-30 12:56:08 +02:00
snaphelper [effects/snaphelper] Use windowFrameGeometryChanged 2020-02-12 10:52:26 +02:00
squash/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-03-27 06:43:00 +01:00
startupfeedback Set cursor size default to 24 to align with KCM 2020-04-17 14:43:51 +02:00
thumbnailaside Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
touchpoints Add some const & 2019-10-30 19:23:01 +01:00
trackmouse Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
translucency/package SVN_SILENT made messages (.desktop file) - always resolve ours 2019-12-03 05:49:05 +01:00
windowaperture/package SVN_SILENT made messages (.desktop file) - always resolve ours 2020-04-29 06:38:00 +02:00
windowgeometry Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
wobblywindows Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
zoom Reduce the amount of objects that are compiled several times 2020-04-02 00:41:55 +02:00
CMakeLists.txt Port away from deprecated KIconLoader::IconSize 2020-02-29 00:29:13 +01:00
effect_builtins.cpp Remove the "Candy" category and fold its contents into "Appearance" 2020-02-25 11:26:27 -07:00
effect_builtins.h
kwineffect.desktop
logging.cpp
Messages.sh Extract messages from header file as well, optimize extraction 2020-02-16 11:55:17 +02:00
shaders.qrc