kwin/clients/PORTING

30 lines
1.5 KiB
Plaintext

This document lists changed needed for porting KWin decoration clients from KDE3 to KDE4:
- the client needs to be ported to KDE4/Qt4 (obviously)
- KCommonDecoration no longer inherits KDecoration, it only has the same API (it is
source-compatible) - this means that generally there should not be any changes related
to this needed, with the exception of converting from KCommonDecoration* to KDecoration*
(most notably in createDecoration()) - call decoration() to do the conversion;
for example, change
"
KDecoration* YourClientHandler::createDecoration( KDecorationBridge* bridge )
{
return new YourClientClient( bridge, this );
}
"
to
"
KDecoration* YourClientHandler::createDecoration( KDecorationBridge* bridge )
{
return ( new YourClientClient( bridge, this ))->decoration();
}
"
- KDecoration::workspaceWidget() has been removed, for drawing outlines in drawbound(),
use code similar to example in the documentation for KDecoration::drawbound()
- KDecoration::animateMinimize() and KDecoration::helperShowHide() have been removed,
animations are now implemented only by KWin's compositing code
- there are new AbilityColor* abilities you should add to supports()
- Qt::WA_PaintOnScreen attribute is enabled for KDecoration::widget() in order to avoid
extensive and unnecessary memory usage caused by the backing store. Double-buffer
manually if necessary using a temporary QPixmap in paintEvent().