Handle menu events a little better: don't bother updating a submenu on
mouseover if it is already open, and call update on menus, even if they aren't marked as invalid.
This commit is contained in:
parent
1ff042579e
commit
71b7b043a2
2 changed files with 5 additions and 8 deletions
|
@ -436,7 +436,7 @@ void menu_control_mouseover(MenuEntry *self, gboolean enter) {
|
|||
!= 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 */
|
||||
|
|
|
@ -7,15 +7,12 @@
|
|||
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;
|
||||
|
|
Loading…
Reference in a new issue