mirror of
https://github.com/MidnightCommander/mc
synced 2025-03-01 13:45:29 +03:00
Ticket #3731: add new MSG_CHANGED_FOCUS message.
This message is sent to widgets'owner when widget's focus state is changed. Find file dialog: fix initial draw of ignore directories input line. Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
parent
87cc7baead
commit
8550044635
@ -315,7 +315,7 @@ widget_set_state (Widget * w, widget_state_t state, gboolean enable)
|
|||||||
{
|
{
|
||||||
send_message (w, NULL, MSG_DRAW, 0, NULL);
|
send_message (w, NULL, MSG_DRAW, 0, NULL);
|
||||||
/* Notify owner that focus was moved from one widget to another */
|
/* Notify owner that focus was moved from one widget to another */
|
||||||
send_message (w->owner, w, MSG_NOTIFY, (int) msg, NULL);
|
send_message (w->owner, w, MSG_CHANGED_FOCUS, 0, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -30,6 +30,7 @@ typedef enum
|
|||||||
MSG_INIT = 0, /* Initialize widget */
|
MSG_INIT = 0, /* Initialize widget */
|
||||||
MSG_FOCUS, /* Draw widget in focused state or widget has got focus */
|
MSG_FOCUS, /* Draw widget in focused state or widget has got focus */
|
||||||
MSG_UNFOCUS, /* Draw widget in unfocused state or widget has been unfocused */
|
MSG_UNFOCUS, /* Draw widget in unfocused state or widget has been unfocused */
|
||||||
|
MSG_CHANGED_FOCUS, /* Notification to owner about focus state change */
|
||||||
MSG_ENABLE, /* Change state to enabled */
|
MSG_ENABLE, /* Change state to enabled */
|
||||||
MSG_DISABLE, /* Change state to disabled */
|
MSG_DISABLE, /* Change state to disabled */
|
||||||
MSG_DRAW, /* Draw widget on screen */
|
MSG_DRAW, /* Draw widget on screen */
|
||||||
|
@ -150,8 +150,8 @@ edit_save_mode_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm
|
|||||||
{
|
{
|
||||||
switch (msg)
|
switch (msg)
|
||||||
{
|
{
|
||||||
case MSG_NOTIFY:
|
case MSG_CHANGED_FOCUS:
|
||||||
if (sender != NULL && sender->id == edit_save_mode_radio_id && parm == (int) MSG_FOCUS)
|
if (sender != NULL && sender->id == edit_save_mode_radio_id)
|
||||||
{
|
{
|
||||||
Widget *ww;
|
Widget *ww;
|
||||||
|
|
||||||
|
@ -422,6 +422,14 @@ find_check_regexp (const char *r)
|
|||||||
|
|
||||||
/* --------------------------------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
static void
|
||||||
|
find_toggle_enable_ignore_dirs (void)
|
||||||
|
{
|
||||||
|
widget_disable (WIDGET (in_ignore), !(ignore_dirs_cbox->state & C_BOOL));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* --------------------------------------------------------------------------------------------- */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
find_toggle_enable_params (void)
|
find_toggle_enable_params (void)
|
||||||
{
|
{
|
||||||
@ -480,12 +488,9 @@ find_parm_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, voi
|
|||||||
return MSG_HANDLED;
|
return MSG_HANDLED;
|
||||||
|
|
||||||
case MSG_NOTIFY:
|
case MSG_NOTIFY:
|
||||||
if (sender == WIDGET (ignore_dirs_cbox) && parm == (int) MSG_FOCUS)
|
if (sender == WIDGET (ignore_dirs_cbox))
|
||||||
{
|
{
|
||||||
gboolean disable = !(ignore_dirs_cbox->state & C_BOOL);
|
find_toggle_enable_ignore_dirs ();
|
||||||
|
|
||||||
widget_disable (WIDGET (in_ignore), disable);
|
|
||||||
|
|
||||||
return MSG_HANDLED;
|
return MSG_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -529,6 +534,7 @@ find_parm_callback (Widget * w, Widget * sender, widget_msg_t msg, int parm, voi
|
|||||||
case MSG_DRAW:
|
case MSG_DRAW:
|
||||||
if (first_draw)
|
if (first_draw)
|
||||||
{
|
{
|
||||||
|
find_toggle_enable_ignore_dirs ();
|
||||||
find_toggle_enable_params ();
|
find_toggle_enable_params ();
|
||||||
find_toggle_enable_content ();
|
find_toggle_enable_content ();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user