summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorScott Moynes <smoynes@nexus.carleton.ca>2003-06-29 01:44:31 +0000
committerScott Moynes <smoynes@nexus.carleton.ca>2003-06-29 01:44:31 +0000
commit71b7b043a2ca6fc99a41a1e47e76f96eb7218ad9 (patch)
tree66a9374d269db4b9242a0bb49525319aa6814934 /openbox
parent1ff042579e2cbe367807ed6c8a15e71dfae2a526 (diff)
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.
Diffstat (limited to 'openbox')
-rw-r--r--openbox/menu.c2
-rw-r--r--openbox/menu_render.c11
2 files changed, 5 insertions, 8 deletions
diff --git a/openbox/menu.c b/openbox/menu.c
index 9993b350..f7eef7fb 100644
--- a/openbox/menu.c
+++ b/openbox/menu.c
@@ -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 */
diff --git a/openbox/menu_render.c b/openbox/menu_render.c
index d3b0e016..deebfd89 100644
--- a/openbox/menu_render.c
+++ b/openbox/menu_render.c
@@ -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;