The common usage of stacking order is to loop through
the list and find a specific Client. All these usages
still need to find a Client. For that the loops are
adjusted to first cast the Toplevel into a Client and
continue if the current item is no Client.
At the moment all entries in the stacking order should
still be Clients as the Deleted are not yet added.
Unlike stated at several places in the code it is not difficult to
setup the connections to all Clients.
It would have been nice if the failed attempts to connect the Clients
would not have made it into the code as emitted signals which are
nowhere used. Not to mention that like in all places the signals to
inform that a state changed were emitted before the state changed was
performed.
Some functions and variables were given more proper names and are now
following the naming scheme. 'Redundant' naming information was also removed.
REVIEW: 102020
Instead of directly calling notifyTilingWindowActivated() the signal
clientActivated() is used and connected. Including tiling.h is no longer
needed in activation.cpp.
The direct method calls from class Client were removed and replaced by
connecting to the appropriate signals emitted by class Client. The
affected methods in class Tiling are notifyTilingWindowMinimizeToggle() and
updateAllTiles() which are now private Q_SLOTS.
Including tiling.h in class Client is no longer needed and was removed.
The direct method calls for createTile(), removeTile() and resizeing the
tiling layouts from class Workspace are replaced by connecting to the
appropriate signal. The methods are slots now and a new slot for resizeing
the tiling layouts was introduced.
This initial commit introduces a new class Tiling. It is provided by
the files tiling/tiling.h and tiling/tiling.cpp. It covers all the
Tiling functionality which was provided by Workspace. In this initial
commit, all the functions were just moved and adjusted.
A new member variable m_tiling is introduced to Workspace, which
makes the new class Tiling accessible from Workspace.
The Tiling pointer is created in the constructor and deleted in
the deconstructor. Also a getter method tiling() is provided.
All calls from other classes are updated to use the methods in class
Tiling now.
The KDecoration library lives in libkdecorations/ now.
Installation pathes are unchanged, so this does not influence 3rd party
decorations.
The changes in the KWin main directory are required due to incorrect
includes.
CCMAIL: kwin@kde.org
The regression was caused in tiling which set the geometry to a different one again.
Nikhil please verify that tiling is still working correctly. Looking at the code this
commit should be side-effect free. When coming from Client::move() moveResizeGeom and
initialMoveResizeGeom may not be set. So I think the code in notifyTilingWindowMove()
cannot work at all ;-)
CCBUG: 241049
svn path=/trunk/KDE/kdebase/workspace/; revision=1169433
windows, use the Plasma-desktop window class.
This is a temporary workaround until Plasma exposes
more classes and integrates better with KWin.
Okayed by Lubos Lunak:
http://reviewboard.kde.org/r/4255
Should fix 241051 without having any special
settings for OpenOffice.org windows.
BUG: 241051
svn path=/trunk/KDE/kdebase/workspace/; revision=1137887
This commit merges the kwin-tiling branch. Ideally it shouldn't break anything and add a few features ;-)
It was applied as a patch. Do not attempt to merge the branch directly, it has a few issues.
This feature is currently experimental, although it hasn't crashed in quite a long time. It lacks some features and probably leaks some memory. Fixes will be on the way.
Season Of KDE 2009 project by Nikhil Marathe
svn path=/trunk/KDE/kdebase/workspace/; revision=1118677