|
@@ -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)
|
|
|
{
|