From a2c91770492d1065ed4a25d7fa126d6420009023 Mon Sep 17 00:00:00 2001 From: Jindrich Novy Date: Thu, 9 Aug 2012 10:53:18 +0200 Subject: [PATCH] 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 deletion(-) create mode 100644 mc-exit.patch 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 4.8.4-5 +- handle overlapping menus correctly (#844392) + (https://www.midnight-commander.org/ticket/2817) + * Tue Jul 31 2012 Jindrich Novy 4.8.4-4 - fix segfault if aspell dicts aren't present - fix segfault in mcedit when pressing alt-minus