]> Dogcows Code - chaz/openbox/blobdiff - plugins/menu/client_list_menu.c
new method for loading menu files etc
[chaz/openbox] / plugins / menu / client_list_menu.c
index 2f5c5f9fb8e24a3b880e368c32db40db5ca1490c..5b9637bf2c04e59510be7f27ad18f466c190e1fe 100644 (file)
@@ -29,20 +29,29 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
     ObMenu *menu = frame->menu;
     DesktopData *d = data;
     GList *it;
+    gint i;
 
     menu_clear_entries(menu->name);
 
-    for (it = focus_order[d->desktop]; it; it = g_list_next(it)) {
+    for (it = focus_order[d->desktop], i = 0; it; it = g_list_next(it), ++i) {
         ObClient *c = it->data;
         if (client_normal(c)) {
             GSList *acts;
             ObAction* act;
+            ObMenuEntry *e;
+            ObClientIcon *icon;
 
             act = action_from_string("activate");
             act->data.activate.c = c;
             acts = g_slist_prepend(NULL, act);
-            menu_add_normal(menu->name, 0,
-                            (c->iconic ? c->icon_title : c->title), acts);
+            e = menu_add_normal(menu->name, i,
+                                (c->iconic ? c->icon_title : c->title), acts);
+
+            if ((icon = client_icon(c, 32, 32))) {
+                e->data.normal.icon_width = icon->width;
+                e->data.normal.icon_height = icon->height;
+                e->data.normal.icon_data = icon->data;
+            }
         }
     }
     
@@ -50,11 +59,11 @@ static void desk_menu_update(ObMenuFrame *frame, gpointer data)
 
 /* executes it without changing the client in the actions, since we set that
    when we make the actions! */
-static void desk_menu_execute(ObMenuEntryFrame *self, gpointer data)
+static void desk_menu_execute(ObMenuEntry *self, gpointer data)
 {
     GSList *it;
 
-    for (it = self->entry->data.normal.actions; it; it = g_slist_next(it))
+    for (it = self->data.normal.actions; it; it = g_slist_next(it))
     {
         ObAction *act = it->data;
         act->func(&act->data);
This page took 0.021221 seconds and 4 git commands to generate.