static void ensureCursorDisplayed( void ) { int len, wc, diff; if( EditFlags.Modeless && ( CurrentFile != NULL ) ) { len = WindowAuxInfo( CurrentWindow, WIND_INFO_TEXT_LINES ); if( CurrentPos.line < LeftTopPos.line || CurrentPos.line > LeftTopPos.line + len - 1 ) { SetCurrentLine( CurrentPos.line ); } wc = VirtualColumnOnCurrentLine( CurrentPos.column ) - LeftTopPos.column; if( !ColumnInWindow( wc, &diff ) ) { SetCurrentColumn( CurrentPos.column ); } } }
/* * CheckLeftColumn - check if CurrentPos.column and LeftTopPos.column give a position * in the window; if not, LeftTopPos.column is changed appropriatly */ bool CheckLeftColumn( void ) { int diff, wc, pad; bool rc; wc = VirtualColumnOnCurrentLine( CurrentPos.column ) - LeftTopPos.column; rc = ColumnInWindow( wc, &diff ); if( !rc ) { // |diff| is already at least 1 pad = ( EditFlags.JumpyScroll ) ? SCROLL_HLINE - 1 : 0; if( diff < 0 ) { LeftTopPos.column += diff - pad; } else { LeftTopPos.column += diff + pad; } if( LeftTopPos.column < 0 ) { LeftTopPos.column = 0; } } return( rc ); } /* CheckLeftColumn */