[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