Fix of DLG_ACTION handling in 'Chmod' command window.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2011-03-29 11:26:00 +04:00
parent ab1ee7bd9f
commit 50a1b22860

View File

@ -39,6 +39,7 @@
#include "lib/strutil.h" #include "lib/strutil.h"
#include "lib/util.h" #include "lib/util.h"
#include "lib/widget.h" #include "lib/widget.h"
#include "lib/keybind.h" /* CK_Cancel */
#include "midnight.h" /* current_panel */ #include "midnight.h" /* current_panel */
#include "chmod.h" #include "chmod.h"
@ -179,6 +180,11 @@ chmod_callback (Dlg_head * h, Widget * sender, dlg_msg_t msg, int parm, void *da
switch (msg) switch (msg)
{ {
case DLG_ACTION: case DLG_ACTION:
/* close dialog due to SIGINT (ctrl-g) */
if (sender == NULL && parm == CK_Cancel)
return MSG_NOT_HANDLED;
/* handle checkboxes */
if (id >= 0) if (id >= 0)
{ {
c_stat ^= check_perm[id].mode; c_stat ^= check_perm[id].mode;
@ -186,8 +192,10 @@ chmod_callback (Dlg_head * h, Widget * sender, dlg_msg_t msg, int parm, void *da
label_set_text (statl, buffer); label_set_text (statl, buffer);
chmod_toggle_select (h, id); chmod_toggle_select (h, id);
mode_change = 1; mode_change = 1;
return MSG_HANDLED;
} }
return MSG_HANDLED;
return MSG_NOT_HANDLED;
case DLG_KEY: case DLG_KEY:
if ((parm == 'T' || parm == 't' || parm == KEY_IC) && id > 0) if ((parm == 'T' || parm == 't' || parm == KEY_IC) && id > 0)