Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 9c23137b8f076d5203b68cafa7824072 > files > 6

compiz-0.5.2-9mdv2008.0.src.rpm

diff --git a/kde/window-decorator/decorator.cpp b/kde/window-decorator/decorator.cpp
index 937038e..4dc23f4 100644
--- a/kde/window-decorator/decorator.cpp
+++ b/kde/window-decorator/decorator.cpp
@@ -64,6 +64,7 @@ bool   activeDecorationOpacityShade = false;
 int    blurType = BLUR_TYPE_NONE;
 
 decor_context_t KWD::Decorator::mDefaultContext;
+decor_extents_t KWD::Decorator::mDefaultBorder;
 decor_shadow_t *KWD::Decorator::mNoBorderShadow = 0;
 decor_shadow_t *KWD::Decorator::mDefaultShadow  = 0;
 KWD::PluginManager *KWD::Decorator::mPlugins = 0;
@@ -350,6 +351,7 @@ KWD::Decorator::updateDefaultShadow (KWD::Window *w)
 	return;
 
     mDefaultContext = *w->context ();
+    mDefaultBorder  = *w->border ();
     mDefaultShadow  = w->shadow ();
 
     if (mDefaultShadow)
diff --git a/kde/window-decorator/decorator.h b/kde/window-decorator/decorator.h
index e56dfdc..1453844 100644
--- a/kde/window-decorator/decorator.h
+++ b/kde/window-decorator/decorator.h
@@ -111,11 +111,15 @@ class Decorator:public KApplication, public KWinInterface {
 	{
 	    return &mShadowOptions;
 	}
-	static decor_shadow_t *defaultWindowShadow (decor_context_t *context)
+	static decor_shadow_t *defaultWindowShadow (decor_context_t *context,
+						    decor_extents_t *border)
 	{
 	    if (!mDefaultShadow)
 		return NULL;
 
+	    if (memcmp (border, &mDefaultBorder, sizeof (decor_extents_t)) != 0)
+		return NULL;
+
 	    *context = mDefaultContext;
 	    return mDefaultShadow;
 	}
@@ -152,6 +156,7 @@ class Decorator:public KApplication, public KWinInterface {
     private:
 	static PluginManager *mPlugins;
 	static KWD::Options *mOptions;
+	static decor_extents_t mDefaultBorder;
 	static decor_context_t mDefaultContext;
 	static decor_shadow_t *mDefaultShadow;
 	static decor_shadow_t *mNoBorderShadow;
diff --git a/kde/window-decorator/window.cpp b/kde/window-decorator/window.cpp
index 7e07eab..a9e77d7 100644
--- a/kde/window-decorator/window.cpp
+++ b/kde/window-decorator/window.cpp
@@ -932,7 +932,7 @@ KWD::Window::updateShadow (void)
     /* use default shadow if such exist */
     if (!mUniqueHorzShape && !mUniqueVertShape)
     {
-	mShadow = Decorator::defaultWindowShadow (&mContext);
+	mShadow = Decorator::defaultWindowShadow (&mContext, &mBorder);
 	if (mShadow)
 	    decor_shadow_reference (mShadow);
     }
diff --git a/kde/window-decorator/window.h b/kde/window-decorator/window.h
index ef7b79f..8472677 100644
--- a/kde/window-decorator/window.h
+++ b/kde/window-decorator/window.h
@@ -166,6 +166,10 @@ class Window:public QWidget, public KDecorationBridge {
 	{
 	    return mShadow;
 	}
+	decor_extents_t *border (void)
+	{
+	    return &mBorder;
+	}
 	QRect clientGeometry (void);
 	void showKillProcessDialog (Time timestamp);
 	void hideKillProcessDialog (void);