summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Thomas <markbt@efaref.net>2008-02-10 14:35:12 +0000
committerMark Thomas <markbt@efaref.net>2008-02-10 14:35:12 +0000
commit7215ad9cc9673ff35d029778f463fc2f1e78678f (patch)
tree51e5daf905d099c79ad57206f2ccfab4ecddcaa8
parentd41f3ba3791a111d7cc12268003fbbc0929c2e49 (diff)
downloadstatic-7215ad9cc9673ff35d029778f463fc2f1e78678f.tar.gz
static-7215ad9cc9673ff35d029778f463fc2f1e78678f.tar.bz2
Fix ezoom compatibility
-rw-r--r--static.c25
-rw-r--r--static.xml.in2
2 files changed, 20 insertions, 7 deletions
diff --git a/static.c b/static.c
index 3ff6fb4..2be270a 100644
--- a/static.c
+++ b/static.c
@@ -45,6 +45,7 @@ typedef struct _StaticScreen
PaintWindowProc paintWindow;
PaintOutputProc paintOutput;
PaintTransformedOutputProc paintTransformedOutput;
+ PreparePaintScreenProc preparePaintScreen;
StaticMode staticMode;
}
@@ -67,6 +68,22 @@ isStatic(CompWindow *w)
}
static void
+staticPreparePaintScreen (CompScreen *s,
+ int msSinceLastPaint)
+{
+ STATIC_SCREEN(s);
+
+ /* Initially we are painting all windows.
+ * This may change if we switch to transformed mode.
+ */
+ ss->staticMode = STATIC_ALL;
+
+ UNWRAP (ss, s, preparePaintScreen);
+ (*s->preparePaintScreen) (s, msSinceLastPaint);
+ WRAP (ss, s, preparePaintScreen, staticPreparePaintScreen);
+}
+
+static void
staticPaintTransformedOutput (CompScreen *s,
const ScreenPaintAttrib *sAttrib,
const CompTransform *transform,
@@ -98,11 +115,6 @@ staticPaintOutput(CompScreen *s,
STATIC_SCREEN (s);
- /* Initially we are painting all windows.
- * This may change if we switch to transformed mode.
- */
- ss->staticMode = STATIC_ALL;
-
UNWRAP (ss, s, paintOutput);
status = (*s->paintOutput) (s, sAttrib, transform, region,
output, mask);
@@ -114,6 +126,7 @@ staticPaintOutput(CompScreen *s,
* Now paint the dock windows untransformed by bypassing
* the virtual table.
*/
+ mask &= ~PAINT_SCREEN_CLEAR_MASK;
ss->staticMode = STATIC_STATIC;
@@ -174,6 +187,7 @@ staticInitScreen (CompPlugin *p,
WRAP (ss, s, paintWindow, staticPaintWindow);
WRAP (ss, s, paintOutput, staticPaintOutput);
WRAP (ss, s, paintTransformedOutput, staticPaintTransformedOutput);
+ WRAP (ss, s, preparePaintScreen, staticPreparePaintScreen);
s->privates[sd->screenPrivateIndex].ptr = ss;
@@ -186,6 +200,7 @@ staticFiniScreen (CompPlugin *p,
{
STATIC_SCREEN (s);
+ UNWRAP (ss, s, preparePaintScreen);
UNWRAP (ss, s, paintTransformedOutput);
UNWRAP (ss, s, paintOutput);
UNWRAP (ss, s, paintWindow);
diff --git a/static.xml.in b/static.xml.in
index 109b7a7..6e21b64 100644
--- a/static.xml.in
+++ b/static.xml.in
@@ -8,8 +8,6 @@
<relation type="before">
<plugin>expo</plugin>
<plugin>zoom</plugin>
- </relation>
- <relation type="after">
<plugin>ezoom</plugin>
</relation>
</deps>