The xinit() call needs to be behind all the tty init, otherwise all the
allocated structures are wrong. The xclear() is now done on purpose. Please keep X11 calls out of the way of pure tty-related calls.master
							parent
							
								
									e9c677816c
								
							
						
					
					
						commit
						055a4f6d2c
					
				
							
								
								
									
										5
									
								
								st.c
								
								
								
								
							
							
						
						
									
										5
									
								
								st.c
								
								
								
								
							|  | @ -953,7 +953,7 @@ treset(void) { | ||||||
| 		term.tabs[i] = 1; | 		term.tabs[i] = 1; | ||||||
| 	term.top = 0, term.bot = term.row - 1; | 	term.top = 0, term.bot = term.row - 1; | ||||||
| 	term.mode = MODE_WRAP; | 	term.mode = MODE_WRAP; | ||||||
| 	xclear(0, 0, xw.w, xw.h); | 
 | ||||||
| 	tclearregion(0, 0, term.col-1, term.row-1); | 	tclearregion(0, 0, term.col-1, term.row-1); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1728,6 +1728,7 @@ tputc(char *c) { | ||||||
| 			case 'c': /* RIS -- Reset to inital state */ | 			case 'c': /* RIS -- Reset to inital state */ | ||||||
| 				treset(); | 				treset(); | ||||||
| 				term.esc = 0; | 				term.esc = 0; | ||||||
|  | 				xclear(0, 0, xw.w, xw.h); | ||||||
| 				xresettitle(); | 				xresettitle(); | ||||||
| 				break; | 				break; | ||||||
| 			case '=': /* DECPAM -- Application keypad */ | 			case '=': /* DECPAM -- Application keypad */ | ||||||
|  | @ -2456,9 +2457,9 @@ main(int argc, char *argv[]) { | ||||||
| 
 | 
 | ||||||
|  run: |  run: | ||||||
| 	setlocale(LC_CTYPE, ""); | 	setlocale(LC_CTYPE, ""); | ||||||
| 	xinit(); |  | ||||||
| 	tnew(80, 24); | 	tnew(80, 24); | ||||||
| 	ttynew(); | 	ttynew(); | ||||||
|  | 	xinit(); | ||||||
| 	selinit(); | 	selinit(); | ||||||
| 	run(); | 	run(); | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
		Reference in New Issue