These functions allow an application to save and restore the positions
of its windows. Positions are stored on a per-screen-arrangement basis.
For example with a single screen connected, the config file would have
entries like this in it:
eDP-1 XPosition=140
eDP-1 YPosition=340
When a second screen is connected, the following gets saved:
eDP-1 HDMI-1 XPosition=3878
eDP-1 HDMI-1 YPosition=29
This ensures that each separate screen arrangement can have its own
saved window position, which is handy for the use case where you have a
laptop that you plug into an external screen some of the time. It also
allows the position to get restored to the correct screen when there are
multiple screens.
This is a necessary first step to getting KDE apps to save their window
positions on X11 The next step would be calling the new functions from
KXMLGui and Kirigami apps, and then porting all apps that manually invoke
KWindowConfig::saveWindowSize() and KWindowConfig::restoreWindowSize()
to also invoke KWindowConfig::saveWindowPosition() and
KWindowConfig::restoreWindowPosition() in the same places.
The functions only work on X11 or other non-Wayland platforms. On
Wayland, the compositor has sole dominion over window positioning so a
compositor-specific solution much be adopted instead, such as
https://bugs.kde.org/show_bug.cgi?id=15329.
CCBUG: 415150
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
techbase wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:
http://community.kde.org/Frameworks/GitOldHistory
If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.
Branched from the monolithic repo, kdelibs frameworks branch, at commit
162066dbbecde401a7347a1cff4fe72a9c919f58