move code into new xresize func, add early exit to resize
This commit is contained in:
		
							
								
								
									
										22
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								st.c
									
									
									
									
									
								
							@@ -190,6 +190,7 @@ static void xdrawcursor(void);
 | 
				
			|||||||
static void xinit(void);
 | 
					static void xinit(void);
 | 
				
			||||||
static void xloadcols(void);
 | 
					static void xloadcols(void);
 | 
				
			||||||
static void xseturgency(int);
 | 
					static void xseturgency(int);
 | 
				
			||||||
 | 
					static void xresize(int, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void expose(XEvent *);
 | 
					static void expose(XEvent *);
 | 
				
			||||||
static void visibility(XEvent *);
 | 
					static void visibility(XEvent *);
 | 
				
			||||||
@@ -1257,6 +1258,14 @@ tresize(int col, int row) {
 | 
				
			|||||||
	tsetscroll(0, row-1);
 | 
						tsetscroll(0, row-1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void
 | 
				
			||||||
 | 
					xresize(int col, int row) {
 | 
				
			||||||
 | 
						xw.bufw = MAX(1, col * xw.cw);
 | 
				
			||||||
 | 
						xw.bufh = MAX(1, row * xw.ch);
 | 
				
			||||||
 | 
						XFreePixmap(xw.dis, xw.buf);
 | 
				
			||||||
 | 
						xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
xloadcols(void) {
 | 
					xloadcols(void) {
 | 
				
			||||||
	int i, r, g, b;
 | 
						int i, r, g, b;
 | 
				
			||||||
@@ -1615,16 +1624,13 @@ resize(XEvent *e) {
 | 
				
			|||||||
	
 | 
						
 | 
				
			||||||
	xw.w = e->xconfigure.width;
 | 
						xw.w = e->xconfigure.width;
 | 
				
			||||||
	xw.h = e->xconfigure.height;
 | 
						xw.h = e->xconfigure.height;
 | 
				
			||||||
	xw.bufw = xw.w - 2*BORDER;
 | 
						col = (xw.w - 2*BORDER) / xw.cw;
 | 
				
			||||||
	xw.bufh = xw.h - 2*BORDER;
 | 
						row = (xw.h - 2*BORDER) / xw.ch;
 | 
				
			||||||
	col = xw.bufw / xw.cw;
 | 
						if(col == term.col && row == term.row)
 | 
				
			||||||
	row = xw.bufh / xw.ch;
 | 
							return;
 | 
				
			||||||
	tresize(col, row);
 | 
						tresize(col, row);
 | 
				
			||||||
	ttyresize(col, row);
 | 
						ttyresize(col, row);
 | 
				
			||||||
	xw.bufh = MAX(1, xw.bufh);
 | 
						xresize(col, row);
 | 
				
			||||||
	xw.bufw = MAX(1, xw.bufw);
 | 
					 | 
				
			||||||
	XFreePixmap(xw.dis, xw.buf);
 | 
					 | 
				
			||||||
	xw.buf = XCreatePixmap(xw.dis, xw.win, xw.bufw, xw.bufh, XDefaultDepth(xw.dis, xw.scr));
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user