Index: src/filemanager/midnight.c =================================================================== --- src/filemanager/midnight.c (revision c1f2a8ac49d29da749f078d69174f83b96720514) +++ src/filemanager/midnight.c (revision 9bec27cb0473c4e0545f33cb18ae794b84e8b2bb) @@ -1598,5 +1598,5 @@ { /* menubar */ - if (menubar_visible) + if (menubar_visible || the_menubar->is_active) ret = ((Widget *) the_menubar)->mouse (event, the_menubar); else @@ -1605,10 +1605,12 @@ w = get_panel_widget (0); - ret = w->mouse (event, w); + if (w->mouse != NULL) + ret = w->mouse (event, w); if (ret == MOU_UNHANDLED) { w = get_panel_widget (1); - ret = w->mouse (event, w); + if (w->mouse != NULL) + ret = w->mouse (event, w); } Index: src/filemanager/panel.c =================================================================== --- src/filemanager/panel.c (revision c1f2a8ac49d29da749f078d69174f83b96720514) +++ src/filemanager/panel.c (revision 9bec27cb0473c4e0545f33cb18ae794b84e8b2bb) @@ -3555,8 +3555,8 @@ /* 1st line */ - if (mouse_down && local.y == 1) + if (local.y == 1) { /* "<" button */ - if (local.x == 2) + if (mouse_down && local.x == 2) { directory_history_prev (panel); @@ -3565,5 +3565,5 @@ /* ">" button */ - if (local.x == w->cols - 1) + if (mouse_down && local.x == w->cols - 1) { directory_history_next (panel); @@ -3572,5 +3572,5 @@ /* "^" button */ - if (local.x >= w->cols - 4 && local.x <= w->cols - 2) + if (mouse_down && local.x >= w->cols - 4 && local.x <= w->cols - 2) { directory_history_list (panel); @@ -3580,5 +3580,5 @@ /* "." button show/hide hidden files */ - if (local.x == w->cols - 5) + if (mouse_down && local.x == w->cols - 5) { midnight_dlg->callback (midnight_dlg, NULL, DLG_ACTION, CK_ShowHidden, NULL); Index: src/filemanager/tree.c =================================================================== --- src/filemanager/tree.c (revision 9b5e5a5106a41bc070e45a2dd176aeaad52fc510) +++ src/filemanager/tree.c (revision 9bec27cb0473c4e0545f33cb18ae794b84e8b2bb) @@ -637,9 +637,9 @@ Gpm_Event local; + if (!mouse_global_in_widget (event, w)) + return MOU_UNHANDLED; + /* rest of the upper frame - call menu */ if (tree->is_panel && (event->type & GPM_DOWN) != 0 && event->y == w->owner->y + 1) - return MOU_UNHANDLED; - - if (!mouse_global_in_widget (event, w)) return MOU_UNHANDLED;