Shaped shadows are not implemented yet, so disable shadows completely

for shaped windows.


svn path=/trunk/KDE/kdebase/workspace/; revision=756795
This commit is contained in:
Luboš Luňák 2008-01-03 19:39:18 +00:00
parent 5647e4684d
commit bc5acf8268
6 changed files with 16 additions and 2 deletions

View file

@ -226,3 +226,7 @@ Effects TODO
* DimInactive flickers when switching between windows (temporarily no window becomes active)
- focus effect (windows waves a little when it gets focus)
+ shadow
+ - make work with xrender
+ - follow the shape of the window (currently is disabled completely using the hasOwnShadow() hack)

View file

@ -28,6 +28,8 @@ Comments
- mention how to turn it on
- refer to COMPOSITE_HOWTO?
- mention API is unstable, work in progress and whatnot
- hmm, better mention compositing as a whole is still somewhat experimental :)
Video

View file

@ -1034,6 +1034,11 @@ QRegion EffectWindowImpl::shape() const
return sw ? sw->shape() : geometry();
}
bool EffectWindowImpl::hasOwnShape() const
{
return toplevel->shape();
}
QSize EffectWindowImpl::size() const
{
return toplevel->size();

View file

@ -189,6 +189,7 @@ class EffectWindowImpl : public EffectWindow
virtual int height() const;
virtual QRect geometry() const;
virtual QRegion shape() const;
virtual bool hasOwnShape() const;
virtual QPoint pos() const;
virtual QSize size() const;
virtual QRect rect() const;

View file

@ -116,7 +116,7 @@ void ShadowEffect::windowClosed( EffectWindow* c )
bool ShadowEffect::useShadow( EffectWindow* w ) const
{
return !w->isDeleted() && !w->isDesktop() && !w->isDock();
return !w->isDeleted() && !w->isDesktop() && !w->isDock() && !w->hasOwnShape();
}
void ShadowEffect::addQuadVertices(QVector<float>& verts, float x1, float y1, float x2, float y2) const

View file

@ -40,7 +40,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define KWIN_EFFECT_API_MAKE_VERSION( major, minor ) (( major ) << 8 | ( minor ))
#define KWIN_EFFECT_API_VERSION_MAJOR 0
#define KWIN_EFFECT_API_VERSION_MINOR 5
#define KWIN_EFFECT_API_VERSION_MINOR 6
#define KWIN_EFFECT_API_VERSION KWIN_EFFECT_API_MAKE_VERSION( \
KWIN_EFFECT_API_VERSION_MAJOR, KWIN_EFFECT_API_VERSION_MINOR )
@ -513,6 +513,8 @@ class KWIN_EXPORT EffectWindow
virtual int height() const = 0;
virtual QRect geometry() const = 0;
virtual QRegion shape() const = 0;
/** @internal Do not use */
virtual bool hasOwnShape() const = 0; // only for shadow effect, for now
virtual QPoint pos() const = 0;
virtual QSize size() const = 0;
virtual QRect rect() const = 0;