r2354 - in trunk/src/target/OM-2007/applications/openmoko-footer: . src

alphaone at sita.openmoko.org alphaone at sita.openmoko.org
Sun Jul 1 05:56:30 CEST 2007


Author: alphaone
Date: 2007-07-01 05:56:29 +0200 (Sun, 01 Jul 2007)
New Revision: 2354

Modified:
   trunk/src/target/OM-2007/applications/openmoko-footer/ChangeLog
   trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.c
   trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.h
Log:
        * src/taskmenu.c (moko_window_filter),(moko_taskmenu_init):
        * src/taskmenu.h:
        Implement window_filter; taskmenu is now updated on changes


Modified: trunk/src/target/OM-2007/applications/openmoko-footer/ChangeLog
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/ChangeLog	2007-07-01 02:01:15 UTC (rev 2353)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/ChangeLog	2007-07-01 03:56:29 UTC (rev 2354)
@@ -1,3 +1,11 @@
+2007-07-01  Daniel Willmann <daniel at totalueberwachung.de>
+
+        * src/taskmenu.c:
+        (moko_window_filter):
+        (moko_taskmenu_init):
+        * src/taskmenu.h:
+				Implement window_filter; taskmenu is now updated on changes
+
 2007-06-30  Daniel Willmann <daniel at totalueberwachung.de>
 
         * src/Makefile.am:

Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.c	2007-07-01 02:01:15 UTC (rev 2353)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.c	2007-07-01 03:56:29 UTC (rev 2354)
@@ -27,22 +27,28 @@
 #include <gtk/gtk.h>
 #include <glib.h>
 
-//GdkFilterReturn
-//moko_window_filter (GdkXEvent *xev, GdkEvent *gev, MokoTaskMenu *tm)
-//{
-//    XEvent *ev = (XEvent *)xev;
-//    Display *dpy = ev->xany.display;
-//
-//    if (ev->xany.type == PropertyNotify && ev->xproperty.window == DefaultRootWindow (dpy)
-//        && (ev->xproperty.atom == atoms[_NET_CLIENT_LIST]))
-//    {
-//        moko_update_task_list(dpy, tm->list);
-//    }
-//
-//    return GDK_FILTER_CONTINUE;
-//}
-//
+GdkFilterReturn
+moko_window_filter (GdkXEvent *xev, GdkEvent *gev, gpointer user_data)
+{
+    XEvent *ev = (XEvent *)xev;
+    Display *dpy = ev->xany.display;
+    MokoTaskMenu *tm = user_data;
 
+    if (ev->xany.type == PropertyNotify && ev->xproperty.window == DefaultRootWindow (dpy)
+        && (ev->xproperty.atom == gdk_x11_atom_to_xatom(gdk_atom_intern("_NET_CLIENT_LIST", FALSE))))
+    {
+        if (moko_update_task_list(dpy, tm)) {
+            g_object_ref_sink(tm->menu);
+            tm->menu = GTK_MENU(gtk_menu_new());
+            moko_taskmenu_populate(dpy, tm);
+            gtk_widget_show_all( GTK_WIDGET(tm->menu) );
+        }
+    }
+
+    return GDK_FILTER_CONTINUE;
+}
+
+
 gchar *
 moko_get_window_name (Display *dpy, Window w)
 {
@@ -177,8 +183,8 @@
 
     gtk_widget_show_all( GTK_WIDGET(tm->menu) );
 
-    //gdk_window_add_filter (NULL, moko_window_filter, tm);
-    //XSelectInput (dpy, DefaultRootWindow (dpy), PropertyChangeMask);
+    gdk_window_add_filter (NULL, moko_window_filter, tm);
+    XSelectInput (dpy, DefaultRootWindow (dpy), PropertyChangeMask);
 }
 
 void moko_taskmenu_populate(Display *dpy, MokoTaskMenu *tm)

Modified: trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.h	2007-07-01 02:01:15 UTC (rev 2353)
+++ trunk/src/target/OM-2007/applications/openmoko-footer/src/taskmenu.h	2007-07-01 03:56:29 UTC (rev 2354)
@@ -35,6 +35,7 @@
 
 
 void moko_taskmenu_init (MokoTaskMenu *tm);
+gboolean moko_update_task_list (Display *dpy, MokoTaskMenu *tm);
 void moko_taskmenu_populate(Display *dpy, MokoTaskMenu *tm);
 void moko_taskmenu_popup_positioning_cb( GtkMenu* menu, gint* x, gint* y, gboolean* push_in, GtkWidget *parent );
 





More information about the commitlog mailing list