X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fmenu%2Fclient_menu.c;h=a13d3f3850c4554c746bca254c344ba66cbb3443;hb=79e189dbac9ec5ae5baed26515ee60b8dce9a079;hp=931ee79dc47bcb730741fec5ff3742c2e49fc9cf;hpb=d03c1afac676c612c2d70584ceb4101607ac4c7e;p=chaz%2Fopenbox diff --git a/plugins/menu/client_menu.c b/plugins/menu/client_menu.c index 931ee79d..a13d3f38 100644 --- a/plugins/menu/client_menu.c +++ b/plugins/menu/client_menu.c @@ -1,14 +1,14 @@ -#include - +#include "kernel/debug.h" #include "kernel/menu.h" #include "kernel/screen.h" #include "kernel/client.h" #include "kernel/openbox.h" - #include "kernel/frame.h" #include "render/theme.h" +#include + static char *PLUGIN_NAME = "client_menu"; static ObMenu *send_to_menu; @@ -31,6 +31,13 @@ void client_send_to_update(ObMenu *self) /* check if we have to update. lame */ while (it != NULL) { + if (i == screen_desktop) { + if (((ObMenuEntry *)it->data)->enabled) + break; + } else { + if (!((ObMenuEntry *)it->data)->enabled) + break; + } if (i >= screen_num_desktops) break; if (strcmp(screen_desktop_names[i], @@ -42,23 +49,26 @@ void client_send_to_update(ObMenu *self) if (it != NULL || i != screen_num_desktops) { menu_clear(self); - g_message("update"); + ob_debug("update\n"); for (i = 0; i < screen_num_desktops; ++i) { ObMenuEntry *e; Action *a = action_from_string("sendtodesktop"); a->data.sendto.desk = i; a->data.sendto.follow = FALSE; e = menu_entry_new(screen_desktop_names[i], a); + if (i == screen_desktop) + e->enabled = FALSE; menu_add_entry(self, e); } - menu_render_full(self); + menu_render(self); } } void client_menu_show(ObMenu *self, int x, int y, ObClient *client) { - guint i, newy, newx; + guint i; + gint newy, newx; Rect *a = NULL; g_assert(!self->invalid); @@ -101,7 +111,7 @@ void plugin_destroy (ObMenu *m) void *plugin_create() /* TODO: need config */ { ObMenu *m = menu_new_full(NULL, "client-menu", NULL, - client_menu_show, NULL); + client_menu_show, NULL, NULL, NULL, NULL); m->plugin = PLUGIN_NAME; menu_add_entry(m, menu_entry_new_submenu("Send To Workspace", send_to_menu)); @@ -143,7 +153,7 @@ void plugin_startup() ObMenu *t; /* create a Send To Workspace ObMenu */ send_to_menu = menu_new_full(NULL, "send-to-workspace", - NULL, NULL, client_send_to_update); + NULL, NULL, client_send_to_update, NULL, NULL, NULL); layer_menu = menu_new(NULL, "layer", NULL); menu_add_entry(layer_menu, menu_entry_new("Top Layer",