Ticket #3084: (dlg_init): fix order of messages sent to widgets during dialog initialization.

If checkbox is the first focusable widget in a dialog, it taken the MSG_DRAW
message after MSG_FOCUS one and therefore wasn't highlighted.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
This commit is contained in:
Andrew Borodin 2013-09-28 21:36:37 +04:00
parent 83ea8e0f14
commit c7b7a299e3

View File

@ -1192,11 +1192,13 @@ dlg_init (WDialog * h)
h->state = DLG_ACTIVE; h->state = DLG_ACTIVE;
/* Select the first widget that takes focus */ /* first send MSG_DRAW to dialog itself and all widgets... */
dlg_redraw (h);
/* ...then send MSG_FOCUS to select the first widget that can take focus */
while (h->current != NULL && !dlg_focus (h)) while (h->current != NULL && !dlg_focus (h))
h->current = dlg_widget_next (h, h->current); h->current = dlg_widget_next (h, h->current);
dlg_redraw (h);
h->ret_value = 0; h->ret_value = 0;
} }