[mc] handle overlapping menus correctly (#844392) (https://www.midnight-commander.org/ticket/2817)

Jindrich Novy jnovy at fedoraproject.org
Tue Sep 11 12:42:39 UTC 2012


commit a2c91770492d1065ed4a25d7fa126d6420009023
Author: Jindrich Novy <jnovy at redhat.com>
Date:   Thu Aug 9 10:53:18 2012 +0200

    handle overlapping menus correctly (#844392)
    (https://www.midnight-commander.org/ticket/2817)

 mc-exit.patch |   79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 mc.spec       |    7 ++++-
 2 files changed, 85 insertions(+), 1 deletions(-)
---
diff --git a/mc-exit.patch b/mc-exit.patch
new file mode 100644
index 0000000..1fded94
--- /dev/null
+++ b/mc-exit.patch
@@ -0,0 +1,79 @@
+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;
+ 
diff --git a/mc.spec b/mc.spec
index dd58dbd..4f737f7 100644
--- a/mc.spec
+++ b/mc.spec
@@ -1,7 +1,7 @@
 Summary:	User-friendly text console file manager and visual shell
 Name:		mc
 Version:	4.8.4
-Release:	4%{?dist}
+Release:	5%{?dist}
 Epoch:		1
 License:	GPLv3+
 Group:		System Environment/Shells
@@ -24,6 +24,7 @@ specific files.
 %setup -q
 %patch1 -p0 -b .spell
 %patch2 -p1 -b .altminus
+%patch3 -p1 -b .exit
 
 %build
 export CFLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $RPM_OPT_FLAGS -Wno-strict-aliasing"
@@ -79,6 +80,10 @@ rm -rf $RPM_BUILD_ROOT
 %dir %{_libexecdir}/mc/ext.d
 
 %changelog
+* Thu Aug 09 2012 Jindrich Novy <jnovy at redhat.com> 4.8.4-5
+- handle overlapping menus correctly (#844392)
+  (https://www.midnight-commander.org/ticket/2817)
+
 * Tue Jul 31 2012 Jindrich Novy <jnovy at redhat.com> 4.8.4-4
 - fix segfault if aspell dicts aren't present
 - fix segfault in mcedit when pressing alt-minus


More information about the scm-commits mailing list