mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 12:56:51 +03:00
(dlg_key_event): clarify post-hotkey handling.
Current widget is the sender of MSG_UNHANDLED_KEY message. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
c2aadb2ad5
commit
326c4ce1d9
@ -245,8 +245,9 @@ dlg_try_hotkey (WDialog * h, int d_key)
|
|||||||
if (d_key & ALT (0) && g_ascii_isalpha (c))
|
if (d_key & ALT (0) && g_ascii_isalpha (c))
|
||||||
d_key = g_ascii_tolower (c);
|
d_key = g_ascii_tolower (c);
|
||||||
|
|
||||||
|
if (!widget_get_options (current, WOP_WANT_HOTKEY))
|
||||||
handled = MSG_NOT_HANDLED;
|
handled = MSG_NOT_HANDLED;
|
||||||
if (widget_get_options (current, WOP_WANT_HOTKEY))
|
else
|
||||||
handled = send_message (current, NULL, MSG_HOTKEY, d_key, NULL);
|
handled = send_message (current, NULL, MSG_HOTKEY, d_key, NULL);
|
||||||
|
|
||||||
/* If not used, send hotkey to other widgets */
|
/* If not used, send hotkey to other widgets */
|
||||||
@ -269,7 +270,11 @@ dlg_try_hotkey (WDialog * h, int d_key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (handled == MSG_HANDLED)
|
if (handled == MSG_HANDLED)
|
||||||
widget_select (WIDGET (hot_cur->data));
|
{
|
||||||
|
current = WIDGET (hot_cur->data);
|
||||||
|
widget_select (current);
|
||||||
|
send_message (h, current, MSG_HOTKEY_HANDLED, 0, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
return handled;
|
return handled;
|
||||||
}
|
}
|
||||||
@ -303,22 +308,20 @@ dlg_key_event (WDialog * h, int d_key)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* first can dlg_callback handle the key */
|
/* first can dlalog handle the key itself */
|
||||||
handled = send_message (h, NULL, MSG_KEY, d_key, NULL);
|
handled = send_message (h, NULL, MSG_KEY, d_key, NULL);
|
||||||
|
|
||||||
/* next try the hotkey */
|
/* next try the hotkey */
|
||||||
if (handled == MSG_NOT_HANDLED)
|
if (handled == MSG_NOT_HANDLED)
|
||||||
handled = dlg_try_hotkey (h, d_key);
|
handled = dlg_try_hotkey (h, d_key);
|
||||||
|
|
||||||
if (handled == MSG_HANDLED)
|
|
||||||
send_message (h, NULL, MSG_HOTKEY_HANDLED, 0, NULL);
|
|
||||||
else
|
|
||||||
/* not used - then try widget_callback */
|
/* not used - then try widget_callback */
|
||||||
|
if (handled == MSG_NOT_HANDLED)
|
||||||
handled = send_message (g->current->data, NULL, MSG_KEY, d_key, NULL);
|
handled = send_message (g->current->data, NULL, MSG_KEY, d_key, NULL);
|
||||||
|
|
||||||
/* not used- try to use the unhandled case */
|
/* not used - try to use the unhandled case */
|
||||||
if (handled == MSG_NOT_HANDLED)
|
if (handled == MSG_NOT_HANDLED)
|
||||||
handled = send_message (h, NULL, MSG_UNHANDLED_KEY, d_key, NULL);
|
handled = send_message (h, g->current->data, MSG_UNHANDLED_KEY, d_key, NULL);
|
||||||
|
|
||||||
if (handled == MSG_NOT_HANDLED)
|
if (handled == MSG_NOT_HANDLED)
|
||||||
handled = dlg_handle_key (h, d_key);
|
handled = dlg_handle_key (h, d_key);
|
||||||
|
Loading…
Reference in New Issue
Block a user