Blob Blame History Raw
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;