diff options
| author | Dana Jansens <danakj@orodu.net> | 2011-10-14 20:48:54 -0400 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2012-09-30 15:00:14 -0400 |
| commit | efc9d9708e3e746a9744a6175a4d3a1259d69991 (patch) | |
| tree | 245e3b9178b57cffdc84f071f54db570d7e1276b /openbox/event.c | |
| parent | 8f988b2bef5af05f0b5cddbc11b05c833158df5a (diff) | |
Select the menu item under the mouse when the mouse is moved (Fix bug 5237)
Diffstat (limited to 'openbox/event.c')
| -rw-r--r-- | openbox/event.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/openbox/event.c b/openbox/event.c index e198eaa1..15a7a479 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -2006,6 +2006,20 @@ static void event_handle_menu(ObMenuFrame *frame, XEvent *ev) ObMenuEntryFrame *e; switch (ev->type) { + case MotionNotify: + // We need to catch MotionNotify in addition to EnterNotify because + // it is possible for the menu to be opened under the mouse cursor, and + // moving the mouse should select the item. + if ((e = g_hash_table_lookup(menu_frame_map, &ev->xmotion.window))) { + if (e->ignore_enters) + --e->ignore_enters; + else if (!(f = find_active_menu()) || + f == e->frame || + f->parent == e->frame || + f->child == e->frame) + menu_frame_select(e->frame, e, FALSE); + } + break; case EnterNotify: if ((e = g_hash_table_lookup(menu_frame_map, &ev->xcrossing.window))) { if (e->ignore_enters) |
