The xinit() call needs to be behind all the tty init, otherwise all the
authorChristoph Lohmann <20h@r-36.net>
Mon, 24 Sep 2012 09:04:26 +0000 (11:04 +0200)
committerChristoph Lohmann <20h@r-36.net>
Mon, 24 Sep 2012 09:04:26 +0000 (11:04 +0200)
allocated structures are wrong. The xclear() is now done on purpose. Please
keep X11 calls out of the way of pure tty-related calls.

st.c

diff --git a/st.c b/st.c
index 9760b6c..2d080e5 100644 (file)
--- a/st.c
+++ b/st.c
@@ -953,7 +953,7 @@ treset(void) {
                term.tabs[i] = 1;
        term.top = 0, term.bot = term.row - 1;
        term.mode = MODE_WRAP;
-       xclear(0, 0, xw.w, xw.h);
+
        tclearregion(0, 0, term.col-1, term.row-1);
 }
 
@@ -1728,6 +1728,7 @@ tputc(char *c) {
                        case 'c': /* RIS -- Reset to inital state */
                                treset();
                                term.esc = 0;
+                               xclear(0, 0, xw.w, xw.h);
                                xresettitle();
                                break;
                        case '=': /* DECPAM -- Application keypad */
@@ -2456,9 +2457,9 @@ main(int argc, char *argv[]) {
 
  run:
        setlocale(LC_CTYPE, "");
-       xinit();
        tnew(80, 24);
        ttynew();
+       xinit();
        selinit();
        run();
        return 0;