all repos — openbox @ 883bad43869c6fe55b4409a25d4283a941f8778d

openbox fork - make it a bit more like ryudo

set the functions recursively, so if you change it after the menu has been opened it takes effect all the way down
Dana Jansens danakj@orodu.net
commit

883bad43869c6fe55b4409a25d4283a941f8778d

parent

3a280fa9495f1651148f627fb621bebbc438e647

1 files changed, 31 insertions(+), 6 deletions(-)

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

@@ -333,6 +333,13 @@ self->more_menu->title = _("More...");

self->more_menu->data = data; self->more_menu->shortcut = g_unichar_tolower(g_utf8_get_char("M")); + self->more_menu->show_func = self->show_func; + self->more_menu->hide_func = self->hide_func; + self->more_menu->update_func = self->update_func; + self->more_menu->execute_func = self->execute_func; + self->more_menu->destroy_func = self->destroy_func; + self->more_menu->place_func = self->place_func; + return self; }

@@ -531,32 +538,50 @@ }

void menu_set_show_func(ObMenu *self, ObMenuShowFunc func) { - self->show_func = self->more_menu->show_func = func; + do { + self->show_func = func; + self = self->more_menu; + } while (self); } void menu_set_hide_func(ObMenu *self, ObMenuHideFunc func) { - self->hide_func = self->more_menu->hide_func = func; + do { + self->hide_func = func; + self = self->more_menu; + } while (self); } void menu_set_update_func(ObMenu *self, ObMenuUpdateFunc func) { - self->update_func = self->more_menu->update_func = func; + do { + self->update_func = func; + self = self->more_menu; + } while (self); } void menu_set_execute_func(ObMenu *self, ObMenuExecuteFunc func) { - self->execute_func = self->more_menu->execute_func = func; + do { + self->execute_func = func; + self = self->more_menu; + } while (self); } void menu_set_destroy_func(ObMenu *self, ObMenuDestroyFunc func) { - self->destroy_func = self->more_menu->destroy_func = func; + do { + self->destroy_func = func; + self = self->more_menu; + } while (self); } void menu_set_place_func(ObMenu *self, ObMenuPlaceFunc func) { - self->place_func = self->more_menu->place_func = func; + do { + self->place_func = func; + self = self->more_menu; + } while (self); } ObMenuEntry* menu_find_entry_id(ObMenu *self, gint id)