alot of renaming...
[k8sterm.git] / src / ttyresize.c
blob33a32ef23735c2ebbd9cd4824aca3b948ec59fd1
1 static void xresize (K8Term *term, int col, int row) {
2 Pixmap newbuf;
3 int oldw, oldh;
4 //
5 if (term == NULL) return;
6 oldw = term->picbufw;
7 oldh = term->picbufh;
8 term->picbufw = K8T_MAX(1, col*xw.cw);
9 term->picbufh = K8T_MAX(1, row*xw.ch);
10 newbuf = XCreatePixmap(xw.dpy, xw.win, term->picbufw, term->picbufh, XDefaultDepth(xw.dpy, xw.scr));
11 XCopyArea(xw.dpy, term->picbuf, newbuf, dc.gc, 0, 0, term->picbufw, term->picbufh, 0, 0);
12 XFreePixmap(xw.dpy, term->picbuf);
13 XSetForeground(xw.dpy, dc.gc, getColor(term->defbg));
14 if (term->picbufw > oldw) {
15 XFillRectangle(xw.dpy, newbuf, dc.gc, oldw, 0, term->picbufw-oldw, K8T_MIN(term->picbufh, oldh));
16 } else if (term->picbufw < oldw && xw.w > term->picbufw) {
17 XClearArea(xw.dpy, xw.win, term->picbufw, 0, xw.w-term->picbufh, K8T_MIN(term->picbufh, oldh), False);
19 if (term->picbufh > oldh) {
20 XFillRectangle(xw.dpy, newbuf, dc.gc, 0, oldh, term->picbufw, term->picbufh-oldh);
21 } else if (term->picbufh < oldh && xw.h > term->picbufh) {
22 XClearArea(xw.dpy, xw.win, 0, term->picbufh, xw.w, xw.h-term->picbufh, False);
24 term->picbuf = newbuf;
25 k8t_tmFullDirty(term);
26 updateTabBar = 1;
27 xw.state |= K8T_WIN_REDRAW;