all repos — openbox @ 1fa08abd9c6674c14bf4088112e69a172ddf19b6

openbox fork - make it a bit more like ryudo

um... hide the client menu when the window changes desktops. its not visible anymore (probably..) and no send to menu wont be wrong too.
Dana Jansens danakj@orodu.net
commit

1fa08abd9c6674c14bf4088112e69a172ddf19b6

parent

fa332cc31474cf1337a0aba5b7d2e9bdd028d87c

4 files changed, 5 insertions(+), 22 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -3027,6 +3027,7 @@ else

focus_order_to_bottom(self); /* call the notifies */ + GSList *it; for (it = client_desktop_notifies; it; it = g_slist_next(it)) { ClientCallback *d = it->data; d->func(self, d->data);
M openbox/client_list_menu.copenbox/client_list_menu.c

@@ -159,7 +159,7 @@ it = g_slist_next(it);

} for (; it; it = next, ++i) { next = g_slist_next(it); - menu_unref(it->data); + menu_free(it->data); desktop_menus = g_slist_delete_link(desktop_menus, it); menu_entry_remove(menu_find_entry_id(menu, i)); }
M openbox/client_menu.copenbox/client_menu.c

@@ -173,26 +173,8 @@ static void desktop_change_callback(ObClient *c, gpointer data)

{ ObMenuFrame *frame = data; if (c == frame->client) { - /* adding/removing entries while it's shown is not fun, so just hide - the menu and reshow it */ - if (frame->parent) { - ObMenuEntryFrame *me = frame->parent_entry; - ObMenuFrame *parent = frame->parent; - gint sel = - g_list_position(frame->entries, - g_list_find(frame->entries, frame->selected)); - menu_frame_select(parent, NULL, TRUE); - menu_frame_select(parent, me, TRUE); - - frame = parent->child; - /* reselect the same spot or the last one if it got shorter */ - sel = MIN(sel, (gint)g_list_length(frame->entries)); - if (sel >= 0) - menu_frame_select(frame, - g_list_nth(frame->entries, sel)->data, - TRUE); - } else - menu_frame_hide(frame); + /* the client won't even be on the screen anymore, so hide the menu */ + menu_frame_hide_all(); } }
M openbox/menu.copenbox/menu.c

@@ -361,7 +361,7 @@

g_free(self); } -void menu_unref(ObMenu *menu) +void menu_free(ObMenu *menu) { if (menu) g_hash_table_remove(menu_hash, menu->name);