handle overlapping menus correctly (#844392)

(https://www.midnight-commander.org/ticket/2817)
This commit is contained in:
Jindrich Novy 2012-08-09 10:53:18 +02:00
parent a3358c0d6f
commit a2c9177049
2 changed files with 85 additions and 1 deletions

79
mc-exit.patch Normal file
View File

@ -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;

View File

@ -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@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@redhat.com> 4.8.4-4
- fix segfault if aspell dicts aren't present
- fix segfault in mcedit when pressing alt-minus