add more spacing
[personal-kdebase.git] / workspace / kwin / clients / PORTING
blobcba6ab489bc6134f48eb0b6699ec42030741d127
1 This document lists changed needed for porting KWin decoration clients from KDE3 to KDE4:
3 - the client needs to be ported to KDE4/Qt4 (obviously)
4 - KCommonDecoration no longer inherits KDecoration, it only has the same API (it is
5     source-compatible) - this means that generally there should not be any changes related
6     to this needed, with the exception of converting from KCommonDecoration* to KDecoration*
7     (most notably in createDecoration()) - call decoration() to do the conversion;
8     for example, change
9     "
10     KDecoration* YourClientHandler::createDecoration( KDecorationBridge* bridge )
11          {
12          return new YourClientClient( bridge, this );
13          }
14     "
15     to
16     "
17     KDecoration* YourClientHandler::createDecoration( KDecorationBridge* bridge )
18          {
19          return ( new YourClientClient( bridge, this ))->decoration();
20          }
21     "
22 - KDecoration::workspaceWidget() has been removed, for drawing outlines in drawbound(),
23     use code similar to example in the documentation for KDecoration::drawbound()
24 - KDecoration::animateMinimize() and KDecoration::helperShowHide() have been removed,
25     animations are now implemented only by KWin's compositing code
26 - there are new AbilityColor* abilities you should add to supports()
27 - Qt::WA_PaintOnScreen attribute is enabled for KDecoration::widget() in order to avoid
28     extensive and unnecessary memory usage caused by the backing store. Double-buffer
29     manually if necessary using a temporary QPixmap in paintEvent().