Hi,
Here is a patch that adds override_redirect matching support to
match.c, allowing expressions like:
   override_redirect=0
or like:
   (type=Unknown | Menu) | override_redirect=1

This is necessary to be able to match popup and dropdown menus in
Mozilla applications.

Regards,
Erkin
From b8db3033de62f4c270eebfac0df0fe895b7ab739 Mon Sep 17 00:00:00 2001
From: Erkin Bahceci <[EMAIL PROTECTED]>
Date: Tue, 1 May 2007 18:51:15 -0500
Subject: [PATCH] Add override_redirect matching support.

---
 src/match.c |   17 ++++++++++++++++-
 1 files changed, 16 insertions(+), 1 deletions(-)

diff --git a/src/match.c b/src/match.c
index d100a21..9935266 100644
--- a/src/match.c
+++ b/src/match.c
@@ -662,6 +662,16 @@ matchEvalIdExp (CompDisplay *display,
     return (private.val == window->id);
 }
 
+static Bool
+matchEvalOverrideRedirectExp (CompDisplay *display,
+                             CompWindow  *window,
+                             CompPrivate private)
+{
+    Bool overrideRedirect = window->attrib.override_redirect;
+    return ((private.val == 1 && overrideRedirect) ||
+           (private.val == 0 && !overrideRedirect));
+}
+
 void
 matchInitExp (CompDisplay  *display,
              CompMatchExp *exp,
@@ -677,7 +687,12 @@ matchInitExp (CompDisplay  *display,
        exp->eval      = matchEvalStateExp;
        exp->priv.uval = windowStateFromString (value + 6);
     }
-    else
+    else if (strncmp (value, "override_redirect=", 18) == 0)
+    {
+       exp->eval     = matchEvalOverrideRedirectExp;
+       exp->priv.val = strtol (value + 18, NULL, 0);
+    }
+    else 
     {
        if (strncmp (value, "type=", 5) == 0)
            value += 5;
-- 
1.4.4.2

_______________________________________________
compiz mailing list
compiz@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to