resize from the top.
This commit is contained in:
		
							
								
								
									
										17
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								st.c
									
									
									
									
									
								
							| @ -1060,12 +1060,25 @@ tresize(int col, int row) { | ||||
| 	int i; | ||||
| 	int minrow = MIN(row, term.row); | ||||
| 	int mincol = MIN(col, term.col); | ||||
| 	int slide = term.c.y - row + 1; | ||||
|  | ||||
| 	if(col < 1 || row < 1) | ||||
| 		return; | ||||
|  | ||||
| 	/* free uneeded rows */ | ||||
| 	for(i = row; i < term.row; i++) { | ||||
| 	/* free unneeded rows */ | ||||
| 	i = 0; | ||||
| 	if(slide > 0) { | ||||
| 		/* slide screen to keep cursor where we expect it - | ||||
| 		 * tscrollup would work here, but we can optimize to | ||||
| 		 * memmove because we're freeing the earlier lines */ | ||||
| 		for(/* i = 0 */; i < slide; i++) { | ||||
| 			free(term.line[i]); | ||||
| 			free(term.alt[i]); | ||||
| 		} | ||||
| 		memmove(term.line, term.line + slide, row * sizeof(Line)); | ||||
| 		memmove(term.alt, term.alt + slide, row * sizeof(Line)); | ||||
| 	} | ||||
| 	for(i += row; i < term.row; i++) { | ||||
| 		free(term.line[i]); | ||||
| 		free(term.alt[i]); | ||||
| 	} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user