|
|
@ -88,12 +88,16 @@ static void xclear(int, int, int, int); |
|
|
|
static void xdrawcursor(void); |
|
|
|
static int xgeommasktogravity(int); |
|
|
|
static void xinit(void); |
|
|
|
static void cresize(int, int); |
|
|
|
static void xresize(int, int); |
|
|
|
static int xloadfont(Font *, FcPattern *); |
|
|
|
static void xloadfonts(char *, double); |
|
|
|
static void xunloadfont(Font *); |
|
|
|
static void xunloadfonts(void); |
|
|
|
static void xsetenv(void); |
|
|
|
static void xseturgency(int); |
|
|
|
static int x2col(int); |
|
|
|
static int y2row(int); |
|
|
|
|
|
|
|
static void expose(XEvent *); |
|
|
|
static void visibility(XEvent *); |
|
|
@ -109,7 +113,6 @@ static void propnotify(XEvent *); |
|
|
|
static void selnotify(XEvent *); |
|
|
|
static void selclear_(XEvent *); |
|
|
|
static void selrequest(XEvent *); |
|
|
|
|
|
|
|
static void selcopy(Time); |
|
|
|
static void getbuttoninfo(XEvent *); |
|
|
|
static void mousereport(XEvent *); |
|
|
@ -148,6 +151,11 @@ static DC dc; |
|
|
|
static XWindow xw; |
|
|
|
static XSelection xsel; |
|
|
|
|
|
|
|
enum window_state { |
|
|
|
WIN_VISIBLE = 1, |
|
|
|
WIN_FOCUSED = 2 |
|
|
|
}; |
|
|
|
|
|
|
|
/* Font Ring Cache */ |
|
|
|
enum { |
|
|
|
FRC_NORMAL, |
|
|
@ -200,6 +208,24 @@ zoomreset(const Arg *arg) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
int |
|
|
|
x2col(int x) |
|
|
|
{ |
|
|
|
x -= borderpx; |
|
|
|
x /= win.cw; |
|
|
|
|
|
|
|
return LIMIT(x, 0, term.col-1); |
|
|
|
} |
|
|
|
|
|
|
|
int |
|
|
|
y2row(int y) |
|
|
|
{ |
|
|
|
y -= borderpx; |
|
|
|
y /= win.ch; |
|
|
|
|
|
|
|
return LIMIT(y, 0, term.row-1); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
getbuttoninfo(XEvent *e) |
|
|
|
{ |
|
|
@ -596,6 +622,23 @@ bmotion(XEvent *e) |
|
|
|
tsetdirt(MIN(sel.nb.y, oldsby), MAX(sel.ne.y, oldsey)); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
cresize(int width, int height) |
|
|
|
{ |
|
|
|
int col, row; |
|
|
|
|
|
|
|
if (width != 0) |
|
|
|
win.w = width; |
|
|
|
if (height != 0) |
|
|
|
win.h = height; |
|
|
|
|
|
|
|
col = (win.w - 2 * borderpx) / win.cw; |
|
|
|
row = (win.h - 2 * borderpx) / win.ch; |
|
|
|
|
|
|
|
tresize(col, row); |
|
|
|
xresize(col, row); |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
xresize(int col, int row) |
|
|
|
{ |
|
|
|