mouseover if it is already open, and call update on menus, even if
they aren't marked as invalid.
!= self->parent->open_submenu)
menu_hide(self->parent->open_submenu);
- if (self->submenu) {
+ if (self->submenu && self->parent->open_submenu != self->submenu) {
self->parent->open_submenu = self->submenu;
/* shouldn't be invalid since it must be displayed */
void menu_render_full(Menu *self);
void menu_render(Menu *self) {
- if (self->invalid) {
- if (self->update) {
- self->update(self);
- } else {
- menu_render_full(self);
- }
+ if (self->update) {
+ self->update(self);
+ } else if (self->invalid) {
+ menu_render_full(self);
}
}
-
void menu_render_full(Menu *self) {
GList *it;