]> Sergey Matveev's repositories - st.git/commitdiff
Clear X window in tsetreset()
authorRoberto E. Vargas Caballero <k0ga@shike2.com>
Mon, 24 Sep 2012 08:26:50 +0000 (10:26 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Mon, 24 Sep 2012 08:26:50 +0000 (10:26 +0200)
tsetreset() is called when it is necessary a full initialization of the
terminal, so it also should clean the full X window and not only the
terminal content. It is necessary change the order of the
initialization in main(), and put xinit before of tnew(), because tnew()
calls to tsetreset(), and  this can cause a call to xreset() with
incorrect values.
---
 st.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

st.c

diff --git a/st.c b/st.c
index 3c158c055e3e971299b84461778b94578b050d91..4c8d67f9155a63930c6de72bc98743b259d0d593 100644 (file)
--- a/st.c
+++ b/st.c
@@ -952,6 +952,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);
 }
 
@@ -2433,9 +2434,9 @@ main(int argc, char *argv[]) {
 
  run:
        setlocale(LC_CTYPE, "");
+       xinit();
        tnew(80, 24);
        ttynew();
-       xinit();
        selinit();
        run();
        return 0;