1 static void xresize (K8Term
*term
, int col
, int row
) {
5 if (term
== NULL
) return;
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
);
27 xw
.state
|= K8T_WIN_REDRAW
;