Mike Dransfield wrote:
I am working on exposing events to external apps via the dbus plugin
I found that I really wanted extra Notify Procedures so that I didn't
have to do too much direct access to xlib (If I understand rightly, plugin
developers shouldn't have to do too much xlib work inside the plugins)

I added Create, Destroy, Map, Unmap, Minimize and Unminimize

Hopefully this can be included as I know a few other people would like
more notifications that can be easilly used in plugins.


Attached is a slight correction for the window.c patch
diff --git a/src/window.c b/src/window.c
index 3346d89..96365a2 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1786,6 +1786,8 @@ addWindow (CompScreen *screen,
                      w->attrib.x, w->attrib.y,
                      w->attrib.width, ++w->attrib.height - 1,
                      w->attrib.border_width);
+
+    (*w->screen->windowCreateNotify) (w);
 }
 
 void
@@ -1819,6 +1821,8 @@ removeWindow (CompWindow *w)
 void
 destroyWindow (CompWindow *w)
 {
+    (*w->screen->windowDestroyNotify) (w);
+
     w->id = 1;
     w->mapNum = 0;
 
@@ -1943,6 +1947,8 @@ mapWindow (CompWindow *w)
                          w->attrib.width, ++w->attrib.height - 1,
                          w->attrib.border_width);
     }
+
+    (*w->screen->windowMapNotify) (w);
 }
 
 void
@@ -1984,6 +1990,8 @@ unmapWindow (CompWindow *w)
        updateWorkareaForScreen (w->screen);
 
     updateClientListForScreen (w->screen);
+
+    (*w->screen->windowUnmapNotify) (w);
 }
 
 static int
@@ -2355,6 +2363,26 @@ focusWindow (CompWindow *w)
 }
 
 void
+windowCreateNotify (CompWindow *w)
+{
+}
+
+void
+windowDestroyNotify (CompWindow *w)
+{
+}
+
+void
+windowMapNotify (CompWindow *w)
+{
+}
+
+void
+windowUnmapNotify (CompWindow *w)
+{
+}
+
+void
 windowResizeNotify (CompWindow *w)
 {
 }
@@ -2382,6 +2410,16 @@ windowUngrabNotify (CompWindow *w)
 }
 
 void
+windowMinimizeNotify (CompWindow *w)
+{
+}
+
+void
+windowUnminimizeNotify (CompWindow *w)
+{
+}
+
+void
 windowStateChangeNotify (CompWindow *w)
 {
 }
@@ -3774,6 +3812,7 @@ minimizeWindow (CompWindow *w)
        forEachWindowOnScreen (w->screen, minimizeTransients, (void *) w);
 
        hideWindow (w);
+       (*w->screen->windowMinimizeNotify) (w);
     }
 }
 
@@ -3798,6 +3837,8 @@ unminimizeWindow (CompWindow *w)
        showWindow (w);
 
        forEachWindowOnScreen (w->screen, unminimizeTransients, (void *) w);
+
+       (*w->screen->windowUnminimizeNotify) (w);
     }
 }
 
_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to