diff --git a/form/frm_driver.c b/form/frm_driver.c index 837b02a..4564167 100644 --- a/form/frm_driver.c +++ b/form/frm_driver.c @@ -840,14 +840,16 @@ _nc_Position_Form_Cursor(FORM *form) field = form->current; formwin = Get_Form_Window(form); - wmove(form->w, form->currow, form->curcol); + int col = Field_Has_Option(field, O_PUBLIC)? form->curcol: form->begincol; + int row = Field_Has_Option(field, O_PUBLIC)? form->currow: form->toprow; + wmove(form->w, row, col); if (Has_Invisible_Parts(field)) { /* in this case fieldwin isn't derived from formwin, so we have to move the cursor in formwin by hand... */ wmove(formwin, - field->frow + form->currow - form->toprow, - field->fcol + form->curcol - form->begincol); + field->frow + row - form->toprow, + field->fcol + col - form->begincol); wcursyncup(formwin); } else