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().