diff --git a/include/mask.cpp b/include/mask.cpp index 623d414c3..0fdd30842 100755 --- a/include/mask.cpp +++ b/include/mask.cpp @@ -872,17 +872,24 @@ long TMask::handler(WINDOW w, EVENT* ep) case WC_NOTEBK: if (ep->v.ctl.ci.win == _notebook) { + const bool changing = ep->v.ctl.ci.v.notebk.page == NULL_WIN; const int new_page = ep->v.ctl.ci.v.notebk.page_new; - if (new_page != _page && new_page < _pages) // Cambio pagina effettivo - { - bool can_proceed = true; - if (_focus >= 0 && find_parent_page(fld(_focus)) != new_page) - can_proceed = check_current_field(); - if (can_proceed) - show_page(new_page); - else - return 1; - } + if (changing) // Tentativo di cambio pagina + { + if (new_page != _page && new_page < _pages) + { + if (_focus >= 0 && find_parent_page(fld(_focus)) != new_page) + { + if (!check_current_field()) + return 1; + } + } + } + else + { + // Cambio pagina avvenuto + show_page(new_page); // Forza il focus al primo campo + } } break; case WC_ICON: // In realta' trattasi di bottone di toolbar