tRemove long text being cropped/wrapped to standard 80x24 on launch. - st - [fo… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit fbc589d50603e8b0de9239e4800e227ab5d0ea69 | |
parent 6fc471ccc660b305cf836dcb8d57cdbffb4ed017 | |
Author: Alexander Sedov <[email protected]> | |
Date: Sun, 23 Jun 2013 21:05:29 +0400 | |
Remove long text being cropped/wrapped to standard 80x24 on launch. | |
To be more specific, now tty creation is delayed until X window is | |
actually mapped; last ConfigureNotify before mapping determines | |
initial tty size. | |
Please report problems if there are any. | |
Diffstat: | |
M TODO | 4 ---- | |
M st.c | 21 ++++++++++++++++++--- | |
2 files changed, 18 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/TODO b/TODO | |
t@@ -26,10 +26,6 @@ bugs | |
* fix rows and column definition in fixed geometry | |
* fix -e handling | |
* remove DEC test sequence when appropriate | |
-* When some application outputting long text is run in the shell init scripts, | |
- then this text might be stripped to the standard 80x25 due to st running the | |
- virtual terminal at first priority. Maybe the vt initialisation could be | |
- moved somewhere after knowing the right window size. | |
misc | |
---- | |
diff --git a/st.c b/st.c | |
t@@ -3520,10 +3520,28 @@ resize(XEvent *e) { | |
void | |
run(void) { | |
XEvent ev; | |
+ int w = xw.w, h = xw.h; | |
fd_set rfd; | |
int xfd = XConnectionNumber(xw.dpy), xev, blinkset = 0, dodraw = 0; | |
struct timeval drawtimeout, *tv = NULL, now, last, lastblink; | |
+ /* Waiting for window mapping */ | |
+ while(1) { | |
+ XNextEvent(xw.dpy, &ev); | |
+ if(ev.type == ConfigureNotify) { | |
+ w = ev.xconfigure.width; | |
+ h = ev.xconfigure.height; | |
+ } else if(ev.type == MapNotify) { | |
+ break; | |
+ } | |
+ } | |
+ | |
+ if(!xw.isfixed) | |
+ cresize(w, h); | |
+ else | |
+ cresize(xw.fw, xw.fh); | |
+ ttynew(); | |
+ | |
gettimeofday(&lastblink, NULL); | |
gettimeofday(&last, NULL); | |
t@@ -3673,10 +3691,7 @@ run: | |
XSetLocaleModifiers(""); | |
tnew(80, 24); | |
xinit(); | |
- ttynew(); | |
selinit(); | |
- if(xw.isfixed) | |
- cresize(xw.h, xw.w); | |
run(); | |
return 0; |