ソースを参照

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.
Christoph Lohmann 12 年 前
コミット
055a4f6d2c
1 ファイル変更3 行追加2 行削除
  1. 3 2
      st.c

+ 3 - 2
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;