These patches look good, it will probably help plugin developers alot!
Thanks!

Regards,
Guillaume Seguin

2006/10/13, Mike Dransfield <[EMAIL PROTECTED]>:


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



_______________________________________________
compiz mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/compiz

Reply via email to