]> Dogcows Code - chaz/openbox/blobdiff - openbox/event.c
Menu uber patch
[chaz/openbox] / openbox / event.c
index 2e2d5c0c744ee2d66eb112e7dbde6bd45c78f30e..5dd1f7057f6361a211858914fe6943f5974d4713 100644 (file)
@@ -378,6 +378,7 @@ static void event_process(XEvent *e)
     window = event_get_window(e);
     if (!(client = g_hash_table_lookup(client_map, &window)))
         menu = g_hash_table_lookup(menu_map, &window);
+
     event_set_lasttime(e);
     event_hack_mods(e);
     if (event_ignore(e, client))
@@ -858,10 +859,12 @@ static void event_handle_menu(Menu *menu, XEvent *e)
     g_message("EVENT %d", e->type);
     switch (e->type) {
     case ButtonPress:
+       g_message("BUTTON PRESS");
         if (e->xbutton.button == 3)
             menu_hide(menu);
         break;
     case ButtonRelease:
+       g_message("BUTTON RELEASED");
         if (!menu->shown) break;
 
 /*        grab_pointer_window(FALSE, None, menu->frame);*/
@@ -879,16 +882,21 @@ static void event_handle_menu(Menu *menu, XEvent *e)
                 e->xbutton.y < (signed)(h+b)) {
                 menu_entry_fire(entry);
             }
-        }
+       
         break;
     case EnterNotify:
     case LeaveNotify:
         g_message("enter/leave");
         entry = menu_find_entry(menu, e->xcrossing.window);
         if (entry) {
-            entry->hilite = e->type == EnterNotify;
+            if (menu->mouseover)
+                menu->mouseover(entry, e->type == EnterNotify);
+            else
+                menu_control_mouseover(entry, e->type == EnterNotify);
+           
             menu_entry_render(entry);
         }
         break;
+       }
     }
 }
This page took 0.0219 seconds and 4 git commands to generate.